我想在URL中收到一个字符串作为id。这是一个例子:
http://www.example.com/Home/Portal/Fishing
我想在我的身份钓鱼。但我无法通过以下代码实现它:
我的控制器代码:
public ActionResult Portal(string name)
{
// some code
ViewData["Portal Name"] = name;
}
Global.asax.cs的代码:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
答案 0 :(得分:8)
只需将参数更改为id
:
public ActionResult Portal(string id)
{
// some code
ViewData["Portal Name"] = id;
}
如果参数与路由值标记具有相同的名称,则该参数将被绑定。因此,另一种方法是保持名为name
的参数并更改路径:
public ActionResult Portal(string name)
{
// some code
ViewData["Portal Name"] = name;
}
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{name}", // URL with parameters
new { controller = "Home", action = "Index", name = UrlParameter.Optional } // Parameter defaults
);
我会选择使用id
,因为这是更标准的方法。