asp.net-mvc-3 - URL 路由 : How do I have a string as my id?

标签 asp.net-mvc-3 url-routing

我想在 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/

相关文章:

c# - ASP.NET MVC3 C# : Passing query as a parameter and displaying result

asp.net-mvc-3 - 使用自定义VirtualPathProvider加载嵌入资源部分 View

ASP.NET Web 窗体路由歧义

javascript - Sails.js 如何修改路由以解释逗号分隔的 id 列表

reactjs - React 路由器主从 : children component don't render new view until page refresh

ASP.NET MVC 3 : Model comes empty in the controller?

asp.net-mvc - 在 MVC3 View 中输入后显示度量单位的好方法是什么?

c# - 如何将 HttpRequest 接收到 MVC 3 Controller 操作中?

javascript - Angular 2 (CLI) 路由不起作用(无法读取未定义的属性 'split')

c# - 使用 Web 窗体的 ASP.NET 路由