Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# routes.MapRoute自定义:传入请求与任何路由都不匹配_C#_Asp.net Mvc - Fatal编程技术网

C# routes.MapRoute自定义:传入请求与任何路由都不匹配

C# routes.MapRoute自定义:传入请求与任何路由都不匹配,c#,asp.net-mvc,C#,Asp.net Mvc,您好,我是MVC新手:收到错误“传入请求与任何路由都不匹配” 控制器controllerWorkflowTestController.cs具有以下代码: public class WorkFlowTestController : Controller { public ActionResult openSampleView(Models.WorkFlowTest model) { if (model.SubmissionId != null)

您好,我是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; }

           }
  }
模型具有以下代码:

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; }

           }
  }
}

在global.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中定制路由的经验。我只需要url,它为我的操作“openSampleView”传递参数,以便它接受参数值并呈现视图。我已经使用模型作为参数,但任何更正此问题的建议都非常感谢。

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

这就给出了控制器的动作

public ActionResult openSampleView(string submissionId)
{
    if (submissionId == null) return null;
    var model = new Models.WorkFlowTest {SubmissionId = submissionId};
    return View("Submission", model);
}
然后,在传递submissionId时,您可以在路由中定义所需的url。例如:

routes.MapRoute("Submission", "submissions/{submissionId}", new { controller = "WorkFlowTest", Action = "openSampleView" });
然后URL应该可以用于id为1的提交(显然用您的站点替换www.example.com)

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

@model MockBDPWorkflowTestApp.Models.WorkFlowTest
然后在视图中,您可以使用

@Model.SubmissionId

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