2012-10-19 33 views
0

我有一個使用Kendo UI網格與客戶端模板的asp.net MVC web應用程序。客戶端模板指定一個href如下:部署mvc應用程序不包括sitename在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鏈接這個工作?

回答

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 }))); 
+0

我想標記您的答案,正確的方式您建議,但我發現它很難得到正確的語法。我該如何將該匿名對象的參數設置爲客戶端模板引用的字段的值? –

+0

@ShawndeWet Kendo UI cliet模板語法與MVC幫助器不搭配,因此它不太好看。看到我更新的答案。 – nemesv

+0

自從你走上正軌後,我接受了你的回答。但是,客戶端模板的正確語法如下:.ClientTemplate(「#=CustomerCode#」); –