我在ASP.NET MVC 4项目中使用Restful Routing .NET NuGet包(https://github.com/stevehodgkiss/restful-routing)。根据文档,我应该能够通过将@HTML.PutOverrideTag()
放在表单中,使用PUT动词向控制器中的Update操作提交表单。我无法让这个工作。每次我提交表单时,都会收到404 Not Found错误。任何人都可以确认他们是否能够正常工作?我的代码如下:
routeconfig.cs:
map.Resources<UsersController>();
视图\用户\ edit.cshtml:
@using (Html.BeginForm("update", "users", new { id = Model.Id }))
{
@Html.PutOverrideTag()
<input id="user_submit" name="commit" type="submit" value="Update" />
}
UsersController.cs:
[Authorize]
[HttpGet]
public ActionResult Edit(int id)
{
var user = UserRepository.GetById(id);
return View(user);
}
[Authorize]
[HttpPut]
public ActionResult Update(int id, User user)
{
return View("edit", user);
}
重新创建的步骤:
答案 0 :(得分:1)
尝试
@Html.HttpMethodOverride(HttpVerbs.Put)
而不是
@Html.PutOverrideTag()