我正在使用我的MVC应用中的区域。我导航到我的CRUD表单页面:
/myarea/mycontroller/myaction/myid
表单包含来自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);
}
}
我的视图模型中的数据将保存到我的数据库中。
但是,当我的ModelState无效且View返回到原始页面时,url中的路径缺少Area:
/mycontroller/myaction/myid
我在MVC设置中遗漏了什么?为什么"返回View(模型);"当我的路线在一个区域时,把我带到错误的路线?
答案 0 :(得分:0)
我解决了自己的问题。而不是使用:
@using (Html.BeginRouteForm(
"Default",
new { controller = "mycontroller", action = "myaction" }, FormMethod.Post))
{
... form data
}
我正在使用:
@using (Html.BeginForm("myaction", "mycontroller", new { area="myarea" }))
{
... form data
}