2013-04-04 23 views
31

Böyle çağrılan bir MVC eylemi uygulamak zorunda:MVC eylem parametresini başka bir parametre adına nasıl yeniden eşlerim?

http://address/Controller/MyAction?resName=name 

ve resName geçmesi için kodlanmış olup bir üçüncü şahıs tarafından denir. Yani naif yolu böyle bir eylem sahip olmaktır:

ActionResult MyAction(String resName) 
{ 

ama resName denilen bir parametre olan sersemlik olduğunu düşünüyorum ve bunu resourceName isim olmasını tercih ederim. MVC parametresi eşleştirmesi parametresini yeniden adlandırırsam artık işlem yapılamaz ve her zaman eylemim çağrıldığında resourceNamenull olarak ayarlanmış olurum.

ActionResult MyAction([Bind(Include="resName")] String resourceName) 

ama resourceName hala null benim eylem çağrıldığında her zaman geçerli:

böyle BindAttribute çalıştı.

Parametre adımı nasıl yeniden eşlerim?

ActionResult MyAction([Bind(Prefix="resName")] String resourceName) 

Ancak yapıyor http://address/Controller/MyAction?resourceName=name o kurulum ile çalışmaz:

cevap

41

Prefix ne ihtiyaç vardır.

9

Başka bir seçenek ActionParameterAlias kitaplığını kullanmaktır. Bunun güzel tarafı, belirli bir parametre için her iki ismin çalışacağıdır.

örn.

using ActionParameterAlias; 
//... 

    [ParameterAlias("resourceName", "resName", Order = 1)] 
    ActionResult MyAction(String resourceName) 

Sonra http://address/Controller/MyAction?resourceName=namevehttp://address/Controller/MyAction?resName=name olacak her iki çalışma sadece iyi gibi kontrolöre çağırır.

İlgili konular