【问题标题】:Anchor tag helpers rendering as plain text while loading from ajax从 ajax 加载时,锚标记助手呈现为纯文本
【发布时间】:2021-05-22 14:08:35
【问题描述】:

在试图实现服务器端加载和 AJAX 调用的 Datatable 内部,一个属性作为来自后端 api 的文本返回,文本值是锚标记的 HTML 表示

OrderNo = $"<a asp-action=\"GetInfo\" asp-route-orderNo=\"{p.OrderNo}\" target=\"_blank\"> {p.OrderNo}</a>",

从控制台,我可以看到文本来自 api,如下所示

"data":[{"orderNo":"<a asp-action=\"GetInfo\" asp-route-orderNo=\"AV22728Z\" target=\"_blank\"> AV22728Z</a>","location":"Has","agent":"......................................

这仅在运行时在表格列中呈现为纯文本,而不是替换为锚标记,即纯文本 AV22728Z 显示在列中

数据表初始化是这样的

$('#shipments').DataTable({                
            // Ajax Filter
            ajax: {
                url: "URL_API",
                type: "POST",
                contentType: "application/json",
                dataType: "json",
                data: function (d) {                        
                    return JSON.stringify(d);
                }
            },
            // Columns Setups
            columns: [
                { data: "orderNo" },
                ......
            ]
        });

【问题讨论】:

  • 我无法重现您的问题。正如预期的那样,我得到了一个有效的&lt;a&gt; 链接。你能向我们展示你得到的最终结果 HTML 吗?仅仅是&lt;td&gt; AV22728Z&lt;/td&gt;吗?

标签: javascript asp.net-mvc razor datatables tag-helpers


【解决方案1】:

链接似乎呈现为有效的 html,但链接不起作用,因为它没有被处理为 anchor tag helper。需要自己在控制器中生成url

OrderNo = $"<a href=\"{Url.Action("GetInfo", new { orderNo = p.OrderNo})}\" target=\"_blank\"> {p.OrderNo}</a>"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    • 2016-06-30
    • 2016-06-04
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    相关资源
    最近更新 更多