我正在使用ASP.NET MVC。我想在Ajax Bound Kendo UI网格中将Account_Number列设置为HTML链接,而不是上一页的Account_Number搜索它。当点击Account_Number链接时,它应该将Account_Number传递给Customer控制器方法'QuickCheckSearch'。
以下代码不会在视图中填充网格,也不会将值调用/传递给控制器。请问有人请更正以下代码吗?
先谢谢。
columns.Bound(p => p.Account_Number)
.ClientTemplate("<#if (item.Account_Number == Model.AccountNumber){>Account_Number <# }" + "else{#><a href='" + Url.Action("QuickCheckSearch", "Customer") + "?Account_Number=#=Account_Number#'>#= Account_Number #</a> <# } #>")
.Title("Account Number");
答案 0 :(得分:0)
你到处都有太多的尖括号。您应该只将它们放在模板的实际HTML标记上,不是作为模板语法本身的一部分。尝试:
.ClientTemplate(
"# if (Account_Number ==" + @Model.AccountNumber + "){ #" +
"#= Account_Number #" +
"# }" +
"else { #" +
"<a href = '" + Url.Action("QuickCheckSearch", "Customer") + "?Account_Number=#=Account_Number#'>#= Account_Number#</a>" +
"# } #"
)
我发现在单独的行上格式化它确实很有帮助,就像你编写实际代码而不是所有代码一样,这样你就可以直观地看到结构了。
你也可以这样做,这可能更干净:
.ClientTemplate("#= accountLinkTemplate(data) #")
....
<script>
function accountLinkTemplate(data) {
var template = data.Account_Number;
if (data.Account_Number == " + @Model.AccountNumber + ") {
template = "<a href = '" + "@Url.Action("QuickCheckSearch", "Customer")" + "?Account_Number=" + data.Account_Number+ "'>" + data.Account_Number+ "</a>";
}
return template;
}
</script>