我正在尝试在视图中创建表单并且遇到路由问题;它似乎完全忽略了我提供的动作名称。这是我的控制器方法(控制器被称为" MyController"):
[HttpGet]
public ActionResult CreateNewRequest()
{
if (ModelState.IsValid)
{
MyViewModelClass model = new MyViewModelClass();
return View("CreateNewRequest", model);
}
else
{
return DisplayModelStateError(ModelState.Values);
}
}
[HttpPost]
public ActionResult CreateNewRequest(MyViewModelClass model)
{
//code to process the view model
return RedirectToAction("Index");
}
在我看来,我尝试了同样的几种变体来渲染表单,包括:
@using (Html.BeginForm("CreateNewRequest","My",FormMethod.Post))
@using (Html.BeginForm("CreateNewRequest","My"))
@using (Html.BeginForm("CreateNewRequest","My",null,FormMethod.Post))
当用户点击提交按钮时,它们都会失败;我收到一条错误消息:
无法找到资源。
描述:HTTP 404.您正在查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。
请求的网址:/我的
特别奇怪的是,如果我反转它们(我知道这是不正确的),我会得到一条错误消息,暗示它寻找行动而不是完全忽略它。例如,如果我尝试
@using (Html.BeginForm("My","CreateNewRequest",FormMethod.Post))
我收到以下错误消息:
无法找到资源。
描述:HTTP 404.您正在查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。
请求的网址:/ CreateNewRequest / My
这里有什么想法吗?