【发布时间】:2011-04-05 16:36:23
【问题描述】:
我的全局中有这个
//custom route
routes.MapRoute(
"DownloadInstall", // Route name
"{controller}/{action}/{id}/{logonserver}", // URL with parameters
new { controller = "Software",
action = "DownloadInstall" } // Parameter defaults
);
//custom route
routes.MapRoute(
"DownloadHelp", // Route name
"{controller}/{action}/{id}/{logonserver}", // URL with parameters
new { controller = "Software",
action = "DownloadHelp" } // Parameter defaults
);
//default route
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Software", action = "Index",
id = UrlParameter.Optional } // Parameter defaults
);
我在 javascript 中调用自定义路由(效果很好),如下所示:
window.location.href = '/Software/DownloadHelp/' + @Model.ID +'\/' +
getLogonServer();
但是,一旦我将其移至具有虚拟目录的 IIS7 框,我的默认路由就足够智能,可以在前面加上虚拟名称...但是由于虚拟目录不在,因此找不到基于 javascript 的路由'不是前置。
【问题讨论】:
-
这就是为什么你应该使用
Html、Ajax和Url帮助器来生成你的链接... -
Sergi...thx...我试过了,但无法正确形成 javascript 变量 我试过这个 window.location.href = @Url.Action("Software", "DownloadInstall", new RouteValueDictionary(new {id = @Model.ID, getLogonServer()}), null);
标签: javascript asp.net-mvc-3 asp.net-mvc-routing