列模板 Kendo UI 网格 MVC 动作链接

7
以下代码在开发环境中可以正常工作,但是一旦部署到Web服务器上,就会显示找不到文件目录。我需要更改.client模板,使其不再像以前那样硬编码。因此,如果我们部署到Top文件夹名称不同或层次结构发生变化的服务器上,它仍然可以找到页面。
我想使用@Url.Action,但不确定在这种情况下如何在.ClientTemplate中实现。
columns.Template(@<text>
           @Html.ActionLink(@item.FirstName, "Index", "Summary", new { testId = @item.FirstName })  
         </text>)
          .ClientTemplate("<a href='/Summary/Index/?testId =#= TestId #'>#=FirstName#</a>").Title("First Name");
4个回答

7
像这样的东西应该可以:
.ClientTemplate("<a href='" + Url.Action("Index", "Summary", new { testId = "#=TestId#" }) + "'>#=FirstName#</a>")

6

我已经成功地解决了这个问题。

columns.Bound(a => a.Id)
       .Title("Action")
       .Filterable(false)
       .ClientTemplate(
                       "<a href='" 
                      + Url.Action("ActionName", "Controller") 
                      + "/#= Id #'" 
                      + ">View</a>"
                      );

我需要一个额外的列和一个链接按钮字段以便转到客户详情页面。这一列不需要筛选选项,因此我使用 Filterable(false) 来删除它。你可以像上面那样给出链接内容和列标题。这个值 "/#= Id #'" 是我传递给控制器操作方法的值。


3
如果您使用服务器绑定(而不是Ajax)和Razor作为视图引擎,这里有一个例子。我需要一个链接,例如/Controller/Action/Id,其中Id是从模型的属性中获取的。请注意,@item表示当前由网格处理的模型实例。
columns.Template(@<text>@Html.ActionLink(AbaScore.Resources.App.Edit,"ACTION", "CONTROLLER", new { @item.Id }, null)</text>)

0

我看过87个不同的例子,但都没有起作用。这就是我最终做的,它很简单,但却有效。

columns.Bound(p => p.member_id)
       .ClientTemplate("<a href='/members/details/#=member_id#'>Details</a>")
       ;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接