【发布时间】:2021-08-20 02:43:24
【问题描述】:
我正在添加一个新的 MVC 页面,并让方法和调用启动并运行。我的问题是我不想传递 URL 参数以显示在我的页面中,但在我重定向到我的新页面时需要传递该方法的参数。目前我的设置是这样的:
Page.cs
void ToNewPage()
{
Response.RedirectToRoute(new { controller = "ControllerName", action = "ActionName", ID1 = 1, ID2 = 2 });
}
ControllerName.cs
public ActionResult ActionName(int ID1, int ID2)
{
...
return View(model);
}
目前使用我的代码,我得到了 URL ~/ControllerName/ActionName?ID1=1&ID2=2。我只是希望 URL 只是 ~/ControllerName/ActionName。我知道这在前端或通过 javascript 会更容易,但如果可能的话,需要从 ToNewPage 方法执行此操作。
【问题讨论】:
-
如果您必须从 Page.cs 中创建两个公共变量;否则,我会从 .cshtml 文件中调用该操作,并将其传递给您的 ViewModel。
-
TempData 或 Cookie 值得考虑。但老实说,查询字符串(即你现在正在做什么)是最好的解决方案。
标签: c# asp.net-mvc url actionresult