【问题标题】:Embed Html.ActionLink in Javascript in Razor在 Razor 的 Javascript 中嵌入 Html.ActionLink
【发布时间】:2011-08-15 08:48:57
【问题描述】:

我知道可以在 MVC3 的 Javascript 中嵌入 @Html,但我无法让以下工作正常工作,也不确定这是否可行。

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

当然我可以手动执行此操作,只是想知道是否有更好的选择。

例如

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


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

目前我已经硬编码了 ID = 1,但我可以很容易地为新创建的行获取它。

谢谢 邓肯

【问题讨论】:

    标签: jquery asp.net asp.net-mvc-3 datatable razor


    【解决方案1】:

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

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

    这将生成整个<a> 标签。你也可以做的只是返回网址:

    var result  = '@Url.Action("EditPallet", new { id = 1 })';
    

    并使用 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);
    

    【讨论】:

    • 你是对的......我认为如果我在它周围加上引号会被解释为字符串文字......对于 MVC3 仍然是新的,它可以做什么仍然让我感到惊讶.看不到我在做另一个 WebForms 应用程序!
    • @Duncan - 我知道你的意思,这里也一样 =)
    猜你喜欢
    • 1970-01-01
    • 2012-07-25
    • 2011-12-04
    • 2011-06-03
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多