0

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は、同じ名前のプロパティ/パラメータをそのリクエスト値にバインドするのでしょうか?

4

1 に答える 1