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; }
}
}
看来,当我直接通过浏览器调用URL(localhost:PORT / Test)时,Action-Property会自动填充“Index”。 如果Action被命名为“MySuperDuperActionWhichGetsInvokedQuiteOften”,那么这个Methodname就属于该属性。
有人可以解释一下MVC在做什么吗? 问题是,我当然希望自己填充这些东西,例如通过AJAX-Query。但是如果MVC单独填充此属性,则会破坏某些行为。
当然,我可以重新命名我的财产,它会起作用,但仍然会发生什么事情。
修改
我理解我的第二个参数,字符串动作,得到了方法名称。但是为什么MVC会将任何属性/参数绑定到它的请求值?
答案 0 :(得分:0)
默认型号活页夹有问题。它将请求字段“映射”到您的类中的属性。有一篇文章MSDN描述了它是如何工作的,但对于这种情况,代码将是这样的:
Action = Request["action"] //where of course Request["action"] equals to name of your action