操作名称未显示在网址

时间:2016-09-06 14:55:06

标签: asp.net-mvc asp.net-mvc-routing

我正在尝试在视图中创建表单并且遇到路由问题;它似乎完全忽略了我提供的动作名称。这是我的控制器方法(控制器被称为" 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

这里有什么想法吗?

0 个答案:

没有答案