已部署的mvc app不包括href链接中的sitename

时间:2012-10-19 11:46:42

标签: asp.net-mvc kendo-ui

我有一个使用Kendo UI网格和客户端模板的asp.net MVC网络应用程序。客户端模板指定href,如下所示:

.ClientTemplate("<a href='[controller]/[action]/[parameters]' />")

在调试运行中,链接按如下方式正确生成:

http://localhost:[port]/[Controller]/[Action]?[parameters]

工作得很漂亮。

但是,在部署环境中,生成的链接如下:

http://[server]/[Controller]/[Action]?[parameters]

这失败了,因为它缺少网站名称。所以我需要的是它生成链接如下:

http://[server]/[WebSite]/[Controller]/[Action]?[parameters]

我如何指定我的href链接才能使用?

1 个答案:

答案 0 :(得分:3)

请勿对您的网址进行手工编码,而不是使用UrlHelper,这会将虚拟目录包含在您的网址中:

.ClientTemplates(string.Format("<a href='{0}' />", 
                     Url.Action("action", "contoller", new { param1, param2})))

如果要在url中使用客户端模板值,则必须动态构建url,因为Kendo UI模板语法不在路由值中:

columns.Bound(m => m.Id)
       .ClientTemplate(string.Format("<a href='{0}&Id=#= Id #'>Click me<a>", 
           Url.Action("action", "contoller", new { someNotTemplatedParam })));