C# MVC应用程序在回发路线中缺少区域
我正在使用MVC应用程序中的区域。我导航到我的CRUD表单页面:C# MVC应用程序在回发路线中缺少区域,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我正在使用MVC应用程序中的区域。我导航到我的CRUD表单页面: /myarea/mycontroller/myaction/myid 表单包含来自my viewmodel的正确数据。我的表单设置为按以下方式发布: @using (Html.BeginRouteForm( "Default", new { controller = "mycontroller", action = "myaction" }, FormMethod.Post)) { ... form
/myarea/mycontroller/myaction/myid
表单包含来自my viewmodel的正确数据。我的表单设置为按以下方式发布:
@using (Html.BeginRouteForm(
"Default",
new { controller = "mycontroller", action = "myaction" }, FormMethod.Post))
{
... form data
}
表单将发布到我的控制器:
// GET: /myarea/mycontroller/myaction/myid
[HttpPost]
public ActionResult MyAction(MyViewModel model)
{
model.Save();
if (ModelState.IsValid)
{
return RedirectToAction("list", "mycontroller", new { area = "myarea" });
}
else
{
return View(model);
}
}
“我的视图模型”中的数据将保存到我的数据库中
但是,当my ModelState无效且视图返回到原始页面时,url中的路由缺少以下区域:
/mycontroller/myaction/myid
我的MVC设置中是否缺少某些内容?为什么“返回视图(模型);”在我的路线位于某个区域时会将我带到错误的路线?我解决了自己的问题。而不是使用:
@using (Html.BeginRouteForm(
"Default",
new { controller = "mycontroller", action = "myaction" }, FormMethod.Post))
{
... form data
}
我正在使用:
@using (Html.BeginForm("myaction", "mycontroller", new { area="myarea" }))
{
... form data
}