Ben "ReportController" adlı bir denetleyici böyle bir MVC eylemi vardır:Neden isteğe bağlı parametre değeri MVC5'te otomatik olarak rota verileriyle doldurulur?
[HttpGet]
public virtual ActionResult Index(int id, Dictionary<string,string> filtersVal = null)
{
...
}
Böyle sayfayı çağırmak deneyin: http://domain.com/report/index?id=1 Bu doğru harekete vurur ama MVC yönlendirme "filerVal" parametresini doldurur bilgi feryat gibi:
[0] = {[kontrolör, rapor]} [1] = {[aksiyon, index]}
Bunu nasıl kaçınabilirsiniz, tha böylece t filterVal parametresi boş kalır. Yakın zamanda bu da MVC3 ince çalışıyordu .. MVC5 taşındı: http://domain.com/report/index?id=2&filterVal[0].Key=136&filterVal[0].Value=1 Daha sonra "filterVal" parametresinde doğru değeri vardır: Böyle aynı eylemi ararsanız o
Not.
İlk senaryodan nasıl kaçınacağımı öneren herhangi biri var mı?
Teşekkürler. Rotanızı tablo böyle girdi varsa
Geçersiz bir değer iletebilirsiniz. '../ Dizin? Id = 1 & filterVal = null' hangi durumda' filterVal' boş bir 'Sözlük' olacak (say = 0) –
Teşekkürler Stephen .. ama biz zaten uygulamada birçok yerde benzer URL var .. Bu sorunun nedenini bulmak ... ve daha önce olduğu gibi düzeltmek, düzeltmek. –
Açıkça, bu parametrenin veriyle ilişkilendirilmesine neden olan bir tür özel model bağlayıcı veya yönlendirme kuralınız olmalıdır. Tüm referanslar için projenizi aradınız mı? Buraya gerçekten yardım edemeyiz çünkü kodunuzu göremiyoruz. –