我已使用以下代码段根据所选合约类型将用户重定向到不同的操作/视图:
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" });
,导致布局更改。
我找不到原因,有谁知道原因?
答案 0 :(得分:1)
由于忘记将UnitBasedContractController
的{{1}}视图文件移动到Admin
区域而导致的问题,我将其留在了全局应用程序区域。所以_ViewStart.cs
全局视图调用了我的视图。