【问题标题】:routes.MapRoute Customisation : The incoming request does not match any routeroutes.MapRoute 自定义:传入的请求不匹配任何路由
【发布时间】:2014-06-12 15:44:29
【问题描述】:

您好,我是 MVC 新手:收到错误“传入的请求与任何路由都不匹配”

控制器controllerWorkflowTestController.cs有代码:

public class WorkFlowTestController : Controller
{
    public ActionResult openSampleView(Models.WorkFlowTest  model)
    {

        if (model.SubmissionId  != null)
        {
            return View("Submission");
        }
        return null;
    }


}

型号有代码:

   namespace MockBDPWorkflowTestApp.Models

   {

           public class WorkFlowTest

           {
             public string SubmissionId { get; set; }

           }
  }

}

在全球 .asax 中我有:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
       "Default",
       "WorkFlowTest/openSampleView/&SubmissionId=1",
       new { controller = "WorkFlowTest", action = "openSampleView", id = "" }
       );

    }

这给出了错误传入的请求不匹配任何路由。这看起来很简单,但没有在 MVC 中自定义路由的经验。我只需要为我的操作“openSampleView”传递参数的 url,以便它接受参数值并呈现视图。我已经使用模型作为参数,但是任何纠正这个问题的建议都值得赞赏,谢谢。

【问题讨论】:

  • 您试图通过 MVC 应用评估什么请求?

标签: c# asp.net-mvc


【解决方案1】:

如果您想在 url 中传递 SubmissionId,您需要将其作为操作的参数,而不是模型。从视图发布数据时使用模型作为参数。此外,如果您想在视图中使用模型,则需要将其传入。

所以这给出了一个控制器动作

public ActionResult openSampleView(string submissionId)
{
    if (submissionId == null) return null;
    var model = new Models.WorkFlowTest {SubmissionId = submissionId};
    return View("Submission", model);
}

在您的路线中,您可以在传递提交 ID 时定义您想要的任何 url。一个例子是:

routes.MapRoute("Submission", "submissions/{submissionId}", new { controller = "WorkFlowTest", Action = "openSampleView" });

那么 URL http://www.example.com/submissions/1 应该适用于 id 为 1 的提交(显然将 www.example.com 替换为您的网站)。

要在视图中使用提交 ID,您需要在视图开头使用以下行将视图绑定到模型。

@model MockBDPWorkflowTestApp.Models.WorkFlowTest

然后您可以在视图中检索 id

@Model.SubmissionId

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 2016-01-14
    • 2017-09-18
    • 2010-12-17
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    相关资源
    最近更新 更多