为什么Route
属性隐藏|应用于其他方法?
[HttpGet]
[Route("Issues/ReportIssue")]
public ActionResult ReportIssue()
没有Route
属性的操作停止工作
[HttpPost]
public ActionResult ReportIssue(IssueModel viewModel)
jQuery
返回"未找到"错误
如果重命名Post
操作或添加Route
属性,则一切正常。 Route
属性是否有任何优先级规则?
答案 0 :(得分:0)
我尝试了以下代码示例 -
[HttpGet]
[Route("Products/Create")]
public ActionResult Create()
{
ProductCategory category = new ProductCategory();
category.ProductCategoryId = 1;
return View(category);
}
[HttpPost]
public ActionResult Create(ProductCategory category)
{
return View(category);
}
我可以看到这种方法没有任何问题。在我的情况下,控制器名称为" Product",如果我将路由属性指定为"产品/创建"则以下代码有效。 (与控制器名称不同),或"产品/创建"。所以不确定,为什么你会遇到这个问题。
Get和Post操作也应该在没有route属性的情况下工作,因为它们正在工作。属性路由是MVC 5中新增的内容,可以更好地控制路由。但是,这不是必须使用的。传统的路线应该可以正常工作。
看看 - http://blogs.msdn.com/b/webdev/archive/2013/10/17/attribute-routing-in-asp-net-mvc-5.aspx文章。