C# MVC应用程序在回发路线中缺少区域

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

我正在使用MVC应用程序中的区域。我导航到我的CRUD表单页面:

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