如何在 ASP.NET MVC 中的 URL 之后允许额外的文本?
Posted
技术标签:
【中文标题】如何在 ASP.NET MVC 中的 URL 之后允许额外的文本?【英文标题】:How do I allow extra text after my URLs in ASP.NET MVC? 【发布时间】:2011-01-19 03:46:25 【问题描述】:我的应用中只有这条路线:
routes.MapRoute(
"Default",
"controller/action/id",
new controller = "Home", action = "Index", id = ""
);
这适用于以下网址:
/Blah/索引 /Blah/创建 /Blah/详细信息/5
我想像这样在最后一个中添加文本:
/Blah/Details/5/Page-Title-Here-Or-Whatever
所以我的问题是:
我的路线应该是什么样子才能实现这一点?(或者如果它与路线没有任何关系......我该怎么办?)
【问题讨论】:
【参考方案1】:MSDN 链接:http://msdn.microsoft.com/en-us/library/cc668201.aspx
routes.MapRoute(
"Default",
"controller/action/id/*allTheRest",
new controller = "Home", action = "Index", id = "", allTheRest=""
);
函数签名应该类似于
public ActionResult MyAction(int? id, string rest)
this.TempData["ID"] = id ?? -1000;
this.TempData["REST"] = rest ?? "Not Provided";
return View();
【讨论】:
这不太适合我...我需要重新启动 IIS 或清除某处的缓存吗? 您使用的是哪个版本的 MVC?这是几周后将包含在 VS2K10 中的 MVC 2 版本。 我从头开始创建了一个项目,这确实有效,谢谢!我只需要弄清楚为什么它在我现有的 IIS 托管项目中不起作用... 在新问题中发布您的路线,有人会帮助您调试。发布您希望匹配的 URL。以上是关于如何在 ASP.NET MVC 中的 URL 之后允许额外的文本?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.NET MVC 中使用 asp-controller 或 asp-action 访问我的 url 中的多个层