比方说,有一个“产品”区域和两个控制器“家庭”和“套件”(在这种情况下会有更多控制器像“套件”一样运行)。
我配置了“ProductAreaRegistration.cs”,使 URL 看起来像这样:
\Products\
(控制器 =“Home”,操作 =“Index”)\Products\Suite
(控制器 =“Suite”,操作 =“Index”)\Products\Suite\TechnicalSpecification
(控制器 =“Suite”,操作 =“TechnicalSpecification”)
“TechnicalSpecification”动作出现在该区域的每个控制器中,但“Home”控制器是唯一的,wo实际上完成了主要工作。像“Suite”这样的其他控制器只是做一些与控制器相关的事情,然后重定向到“Home”,“TechnicalSpecification”:
// Suite-Controller
public ActionResult TechnicalSpecification()
{
//doSomethingThatOnlyThisControllerHasToDo();
return RedirectToAction("TechnicalSpecification", "Home", new { specificationId = 45 });
}
// Home-Controller
public ActionResult TechnicalSpecification(int specificationId)
{
Object model = getModelByIdWithSomeMethod(specificationId);
//DoEvenMoreThingsHere();
return View(model);
}
我的问题是,当我查看“Suite”、“TechnicalSpecification”的链接时,它显示
\Products\Suite\TechnicalSpecification
但单击该链接后,地址栏中的 URL 更改为
\Products\TechnicalSpecification?specificationId=45
因为重定向。我希望 URL 保持如前所述。
所以不是“return RedirectToAction(...)”而是有类似“return ViewResultFromOtherController(...)”的东西,所以它不会重定向?
希望你明白了。
如果没有,请询问!
提前致谢!