Asp.net MVC 5 Kendo Grid Url.Action 传递三个参数

Asp.net MVC 5 Kendo Grid Url.Action passing three parameters

我一直在谷歌上搜索答案,但到目前为止还没有找到任何有效的方法。我需要向 Kendo 网格列中的 link 添加第三个参数(table 有三个键,如果我不包括所有三个键,ActionResult 会抱怨)。我有这个代码:

  columns.Bound(p => p.Line).ClientTemplate(
                            "<a href='" +
                            Url.Action("Details", "OrderLine") +
                            "?OrdId=#= OrdId #&Line=#=Line#'" +
                            ">#=Line#</a>"
                        );

我可以成功传递两个参数。我尝试了以下方法:

                            columns.Bound(p => p.Line).ClientTemplate(
                            "<a href='" +
                            Url.Action("Details", "OrderLine") +
                            "?OrdId=#= OrdId #&Line=#=Line# #&OrdType=#=OrdType#'" +
                            ">#=Line#</a>"
                        );

我很确定我的格式不正确。任何帮助将不胜感激。

看起来您在 &OrdType=... 之前有一个额外的 #,这可能导致 Kendo 的模板系统抛出错误。

完整的[固定]代码块:

columns.Bound(p => p.Line).ClientTemplate(
     "<a href='" +
        Url.Action("Details", "OrderLine") +
        "?OrdId=#= OrdId #&Line=#=Line# #&OrdType=#=OrdType#'" +
        ">#=Line#</a>"
);

作为提示,为了让事情更容易阅读(在我看来),我通常使用 string.Format,如下所示:

columns.Bound(p => p.Line).ClientTemplate(
     string.Format("<a href='{0}?OrdId=#= OrdId #&Line=#=Line# #&OrdType=#=OrdType#'>#=Line#</a>", 
     Url.Action("Details", "OrderLine"))
);