2014-12-03 15 views
5

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

+0

Geçersiz bir değer iletebilirsiniz. '../ Dizin? Id = 1 & filterVal = null' hangi durumda' filterVal' boş bir 'Sözlük' olacak (say = 0) –

+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. –

+0

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. –

cevap

İlgili konular