【发布时间】:2019-12-29 06:19:31
【问题描述】:
有一个项目是这样的:
/node.aspx?id=1
/node.aspx?id=2
我需要改成:
/node/1
/node/2
我提供了新的 mvc 项目,这是我的控制器:
public ActionResult node(string id)
{
return View("~/node.aspx");
}
这是我的 RouteConfig:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { action = "Index", id = UrlParameter.Optional }
);
这样的代码可以正常工作,但是在添加“id”的情况下,它就不再有效了:
public ActionResult node(string id)
{
return View("~/node.aspx?id=" + id);
}
错误:
未找到视图“/node.aspx?id=2”或其主视图或没有视图 引擎支持搜索到的位置。
有没有办法在路由器上显示“aspx?id..”之类的旧页面?
【问题讨论】:
-
可以使用一个动作名称
node和一个参数对动作命中请求,您需要检查并返回相应的视图以及项目的完整路径 -
像 ViewBag.Id = id 一样使用 ViewBag。现在您可以在视图中读取 id 值了。
-
@jishansiddique 你能给我一个样品吗?
-
@RajeshG 哇,太棒了,谢谢!你能把这个作为答案发布吗?也让我知道来自不同 id 的多用户的多请求是否有任何问题,再次感谢。
标签: asp.net asp.net-mvc model-view-controller url-routing actionresult