MVC 4 目前确实给我带来了一些奇怪的行为。
想象一下下面的代码:
测试控制器.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 会自动填充“索引”。如果操作将被命名为“MySuperDuperActionWhichGetsInvokedQuiteOften”,则该方法名将在属性中。
有人可以解释一下 MVC 在这里做什么吗?问题是,我当然想自己填充这些东西,例如通过 AJAX 查询。但是如果 MVC 自己填充这个属性,这会破坏一些行为。
当然,我可以只重命名我的属性并且它会工作,但发生的事情仍然会很有趣。
编辑
我会理解我的第二个参数,字符串操作,get 填充了方法名称。但是为什么 MVC 会将任何名称相同的属性/参数绑定到它的请求值呢?