【发布时间】:2011-05-22 11:48:49
【问题描述】:
今天我发现很难发现两种 MVC 操作方法之间的区别。
我的区域注册:
public override void RegisterArea(AreaRegistrationContext context)
{
// My test route.
context.MapRoute(
"testRoute",
"Test/{action}",
new { controller = "Test", action = "Index" }
);
}
还有这两种方法,分别不同于使用的http-method和参数。
[HttpPost]
public ActionResult Test(TestModel model)
{
return View("Confirm", model);
}
[HttpGet]
public ActionResult Test(string title)
{
Response.Write(title);
Response.End();
return null;
}
不管 http 方法,它总是会渲染第二个 Test() 方法。即使没有提供标题参数(通常由查询字符串 /Test/Test/?title=test 提供)。可能是因为string是引用类型,可以为null。
但是如何克服这个问题呢?如何区分这些方法?
提前致谢。
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-3 routing