我有一个ASP.NET MVC5项目,在视图中,我有一个像这样的链接......
<a href="@Url.Action("Partner", "Home", new {id = Model.PartnerID})">
...loads of markup here...
</a>
这很好用,并为我提供了/Home/Partner/100
但是,如果我为行动添加路线......
routes.MapRoute("Partner", "Partner", new { controller = "Home", action = "Partner" });
...然后,网址呈现为/Partner?id=100
有没有办法获取表格/Partner/100
的网址?
答案 0 :(得分:1)
您的路线定义需要包含const variable1 = function obj(someParam){//constructor function
if(obj.caller === this.constructor.prototype.variable2ID){
if(/*some stuff*/){
/*some setup using the this keyword*/
}else
return this.constructor.prototype.variable2ID(document).ready(someParam);
}else{
return Object.create(null);
}
}
//I'll be fine with the long ass get the prototype thing,
//it's only used in this specific part of the code (which is about 1/200th of it)
的分段。
id
答案 1 :(得分:0)
您可以创建所需的地图路线,如下所示。
routes.MapRoute(
name: "Partner",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Partner", id = UrlParameter.Optional }
);
答案 2 :(得分:-1)
您可以将条目放在Global.asax.cs中,如下所示:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "customroute1",
url: "{controller}/{action}/{id}",
defaults: new
{
controller = "Home",
action = "partner",
id = UrlParameter.Optional
}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {
controller = "Home",
action = "Index",
id = UrlParameter.Optional }
);
}
注意:将代码放在global.ascx文件中的顺序非常重要。
<强> Additional Official Info: 强>
创建新的ASP.NET MVC应用程序时,应用程序已配置为使用ASP.NET路由。 ASP.NET路由设置在两个地方。 首先,在应用程序的Web配置文件(Web.config文件)中启用ASP.NET路由。
配置文件中有四个与路由相关的部分:system.web.httpModules部分,system.web.httpHandlers部分,system.webserver.modules部分和system.webserver.handlers部分。请注意不要删除这些部分,因为如果没有这些部分,路由将不再有效。
其次,更重要的是,在应用程序的Global.asax文件中创建了一个路由表。 Global.asax文件是一个特殊文件,包含ASP.NET应用程序生命周期事件的事件处理程序。路径表是在Application Start事件期间创建的。