我有一个使用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链接才能使用?
答案 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 })));