在Razor的Javascript中嵌入Html.ActionLink

Dun*_*can 2 asp.net datatable jquery razor asp.net-mvc-3

我知道可以在MVC3中的Javascript中嵌入@Html,但是我无法使用以下内容并且不确定这是否可行.

使用jQuery DataTable,我有一个AJAX调用来创建我的新行,然后我使用datatable API以编程方式添加它.这一切都有效,但后来我想把我的编辑ActionLink放到行上,它只显示文本"编辑",而不是链接.

当然我可以手动完成,只是想知道是否有更好的选择.

例如

 tablePallets.fnAddData([ GetPalletActionLinks(), etc...


    function GetPalletActionLinks() {
        var result = @Html.ActionLink("Edit", "EditPallet", new { id = 1 });
        return result;
}
Run Code Online (Sandbox Code Playgroud)

我目前硬编码ID = 1,但我可以轻松地为新创建的行获取此信息.

谢谢邓肯

Ser*_*eit 9

我认为在链接周围添加引号很简单:

var result = '@Html.ActionLink("Edit", "EditPallet", new { id = 1 })';
Run Code Online (Sandbox Code Playgroud)

这将生成整个<a>标记.您还可以做的就是返回网址:

var result  = '@Url.Action("EditPallet", new { id = 1 })';
Run Code Online (Sandbox Code Playgroud)

并使用jQuery将其嵌入现有的锚中:

<!-- let's imagine this already exists -->
<a href="#" id="dynamicLink">Edit</a>

// result is ovbiously what the other function returns
$("#dynamicLink").attr("href", result);
Run Code Online (Sandbox Code Playgroud)

  • 你是对的....我认为如果我在它周围加上引号会被解释为字符串文字......对MVC3来说仍然是新的,它仍然让我感到惊讶它能做什么.看不到我做过另一个WebForms应用程序! (2认同)