C# routes.MapRoute自定义:传入请求与任何路由都不匹配
您好,我是MVC新手:收到错误“传入请求与任何路由都不匹配” 控制器controllerWorkflowTestController.cs具有以下代码: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)
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应用程序评估什么请求?