ASP.Net MVC5:RedirectToAction期间的区域布局更改

时间:2016-03-27 20:06:10

标签: c# asp.net asp.net-mvc asp.net-mvc-5

我已使用以下代码段根据所选合约类型将用户重定向到不同的操作/视图:

public ActionResult Create(ContractViewModelCreate contract)
{
    if (ModelState.IsValid)
    {
        if (contract.ContractType == Contract.ContractTypeENUM.SectionBased)
            return RedirectToAction("Create", "SectionBasedContract", new { area = "Admin" });
        else if (contract.ContractType == Contract.ContractTypeENUM.UnitBased)
            return RedirectToAction("Create", "UnitBasedContract", new { area = "Admin" });
        else
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
    }
    Utils.AddErrorsString(ModelState, "Select project type");
    return View(contract);
}

然而,第一个RedirectToAction导致通过在Admin区域中运行_ViewStart.cs来读取布局文件,第二个导致在根应用程序区域中运行到_ViewStart.cs并且不在乎关于路由对象(在管理区域中运行)。 由于此操作在管理区域内运行return RedirectToAction("Create", "UnitBasedContract", new { area = "Admin" });,导致布局更改。

我找不到原因,有谁知道原因?

1 个答案:

答案 0 :(得分:1)

由于忘记将UnitBasedContractController的{​​{1}}视图文件移动到Admin区域而导致的问题,我将其留在了全局应用程序区域。所以_ViewStart.cs全局视图调用了我的视图。