Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 向剑道网格添加视图或按钮链接_Asp.net Mvc_Vb.net_Razor_Kendo Grid_Kendo Ui Grid - Fatal编程技术网

Asp.net mvc 向剑道网格添加视图或按钮链接

Asp.net mvc 向剑道网格添加视图或按钮链接,asp.net-mvc,vb.net,razor,kendo-grid,kendo-ui-grid,Asp.net Mvc,Vb.net,Razor,Kendo Grid,Kendo Ui Grid,经过一番努力,我终于在MVC应用程序中将我的模型绑定到剑道网格。我现在要做的是在每一行的末尾添加一个Html.ActionLink或一个按钮,这样当单击它时,就会打开一个新的浏览器窗口,其中包含所选人员的详细信息页面 我的网格代码是这样的: @ModelType CDB.GridDetail @Code Dim myGridData As IQueryable(Of Person) = Model.GridDetailPersons Html.Kendo().Grid(Of Pers

经过一番努力,我终于在MVC应用程序中将我的模型绑定到剑道网格。我现在要做的是在每一行的末尾添加一个Html.ActionLink或一个按钮,这样当单击它时,就会打开一个新的浏览器窗口,其中包含所选人员的详细信息页面

我的网格代码是这样的:

@ModelType CDB.GridDetail
@Code

Dim myGridData As IQueryable(Of Person) = Model.GridDetailPersons

    Html.Kendo().Grid(Of Person)(myGridData) _
.Name("Grid") _
.Columns(Sub(c)
             c.Bound(Function(s) s.PersonID)
             c.Bound(Function(s) s.Status)
             c.Bound(Function(s) s.OperationsTeam)
             c.Template(Sub()
                            Html.ActionLink("View", "Details", New With {.id = "PersonID"}, New With {.target = "_blank"})
                        End Sub).Title("View").ClientTemplate("client template")
         End Sub) _
                         .Scrollable() _
                        .Render()
End Code
我遇到的问题是,我找不到一种方法将行的PersonID绑定到ActionLink的.id。我已尝试Person.PersonID和myGridData.PersonID

代码按原样呈现网格和数据,但没有链接。。。该列为空


感谢您的帮助。

列模板是一个模板,它使用Kendo的JS模板语言进行处理,然后用于显示的每一行。例如,你需要编写代码,编写一个剑道JS模板,用于创建浏览器将呈现的内容

在这种情况下,由于
Html.ActionLink
不验证路由参数,因此要将模板放入id参数中:

Html.ActionLink("View", "Details", New With {.id = "#:PersonId#"}, New With {.target = "_blank"}

查看剑道模板。

尝试了Richard的答案,但没有成功。。。返回语法错误

根据他提供的链接,并查看一些其他文档,我确实发现这确实有效

c.Bound(Function(p) p.PersonID).Template(Function(t) @<text>@Html.ActionLink("View", "Details", New With {.id = t.PersonID}, New With {.target = "_blank"})</text>
             End Function).Title("View Details").HtmlAttributes(New With {.style = "text-align:center;"})
c.Bound(函数(p)p.PersonID).Template(函数(t)@@Html.ActionLink(“视图”,“详细信息”,使用{.id=t.PersonID}新建,使用{.target=“\u blank”})新建)
结束函数).Title(“查看详细信息”).HtmlAttributes(新增为{.style=“text align:center;”)

我用它来代替c.Template(Sub…..行

我意识到我的方法不起作用:我习惯于使用
ClientTemplate
(直接定义JS模板),而不是
模板
(使用Razor标记并将其转换为JS模板)@Richard没问题……剑道很好,但在razor vb语法中使用剑道几乎没有什么帮助,我尝试了所有的c#to vb(甚至telerik的)转换器,它们都没有帮助。你确实帮了我,因为我没有看到你链接的文档。谢谢