我遇到了Kendo Grid Columns.Template和Ajax.BeginForm的奇怪问题。
我有这样的代码
@(Html.Kendo().Grid(Model)
.Name("Monitoring")
.Columns(columns =>
{
columns.Template(@<text>
@using (Ajax.BeginForm("HardReboot", "Admin", new { id = item.Id }, new AjaxOptions
{
OnSuccess = "Loaded",
OnFailure = "Failure"
}))
{
<input class="btn btn-default" type="submit" value="Hard Reboot" />
}
</text>).Width(30);
}
))
当呈现页面时,Form html标记将呈现在列之外,如此
<form action="/admin/hardreboot?id=1185158" data-ajax="true" data-ajax-failure="Failure" data-ajax-success="Loaded" id="form0" method="post"></form>
<div class="k-widget k-grid" id="Monitoring"><table><colgroup><col style="width:30px" /></colgroup><thead class="k-grid-header"><tr><th class="k-header" scope="col"><span class="k-link"> </span></th></tr></thead><tbody><tr><td>
<input class="btn btn-default" type="submit" value="Hard Reboot" />
</td></tr></tbody></table></div>
知道为什么吗?
答案 0 :(得分:1)
使用jQuery.ajax()
执行手动ajax请求而不是放置表单,因为嵌套表单会导致问题
答案 1 :(得分:0)
不知道但是你可以使用自定义命令。
http://demos.telerik.com/kendo-ui/grid/custom-command
自定义命令呈现按钮(您可以添加样式)并在按下时调用javascript函数。在此功能中,您可以执行ajax请求。