我的应用程序已经有一个用于微调器的公共控制器,它又调用构成查询字符串一部分的其他控制器。
SpinnerController:
{{ macro_function(**locals) }}
Spinner视图
public ActionResult Index() { return View();}
现在,我的家庭控制器:
<html>
<body onload="JsHelpers.ShowSpinner('Page loading, please wait...'); window.location=JsHelpers.GetUrlParameter('page');"></body>
</html>
我设计了一个母版页,其中包含通过SpinnerController调用我的HomeController的链接,因为我需要保持旧流程。
例如:要调用HomeController,
public ActionResult Index() { /*my code goes here*/ return View()}
这为我提供了网址:@Url.Action("Index","Spinner", new {page ="home"})
,我在localhost/Spinner?page=home
page
之后通过QueryString识别控制器路径_Layout.cshtml
并相应地重定向(在这种情况下, HomeController中)
现在,当我需要将输入发送到我想要调用的另一个控制器时,我的问题出现了。
考虑一下,StudentController
Request.QueryString["page"]
我需要网址格式为Public ActionResult Index(int id) { /*my code goes here*/ return View()}
。
我使用了localhost/Spinner?page=Student?id=2
以及其他方法,这些方法我都知道并且无法生成上述格式的网址,因此在过去的几天内就被这个方法所取代。
所以,
任何建议/建议/帮助将不胜感激。
提前致谢。
答案 0 :(得分:-1)
我建议您添加一条新路线并将其放在App_Start文件夹的路线配置顶部,如下所示:
routes.MapRoute(
"spinner",
"Spinner/Index/{page}/{parm1}/{parm2}",
new { action = "Index", controller = "Spinner" }
);
然后你可以在你的行动中获得参数:
public ActionResult Index(string page, string parm1, string parm2) {...}
public ActionResult Index(string page, string parm1, string parm2) {...}