MVC 4 は、現時点で奇妙な動作を示しています。
次のコードを想像してください。
TestController.cs
public class TestController : Controller
{
public ActionResult Index(Function function, string action)
{
return View();
}
public class Function
{
public string Action { get; set; }
}
}
ブラウザー (localhost:PORT/Test) から URL を直接呼び出すと、Action-Property に自動的に "Index" が入力されるようです。アクションの名前が「MySuperDuperActionWhichGetsInvokedQuiteOften」の場合、まさにこのメソッド名がプロパティに含まれます。
ここでMVCが何をしているのか誰か説明できますか? 問題は、もちろん、たとえば AJAX-Query を使用して、自分でその内容を埋めたいということです。しかし、MVC がこのプロパティをすべて単独で埋めている場合、これはいくつかの動作を壊します。
もちろん、自分のプロパティの名前を変更するだけでも機能しますが、何が起こっているのかは非常に興味深いものです。
編集
2 番目のパラメーターである文字列アクション get がメソッド名で満たされていることは理解できます。しかし、いったいなぜ MVCは、同じ名前のプロパティ/パラメータをそのリクエスト値にバインドするのでしょうか?