我想在 URL 中接收一个字符串作为 id。这是一个例子:
http://www.example.com/Home/Portal/Fishing
我想在我的身份证里钓鱼。但我无法使用以下代码实现它:
来自我的 Controller 的代码:
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
);
最佳答案
只需将参数更改为 id
:
public ActionResult Portal(string id)
{
// some code
ViewData["Portal Name"] = id;
}
如果参数与路由值标记同名,则该参数将被绑定(bind)。因此,另一种方法是保留名为
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
, 但是,因为它是更标准的方法。
关于asp.net-mvc-3 - URL 路由 : How do I have a string as my id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6777113/