问题描述
在试图实现服务器端加载和 AJAX 调用的数据表中,一个属性作为文本从后端 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" },......
]
});
解决方法
链接似乎呈现为有效的 html,但链接不起作用,因为它没有作为 anchor tag helper 处理。您需要自己在控制器中生成 url
OrderNo = $"<a href=\"{Url.Action("GetInfo",new { orderNo = p.OrderNo})}\" target=\"_blank\"> {p.OrderNo}</a>"