如何将 JQuery 响应数据 (Html.ActionLink) 解码为 HTML table 元素?

How to decode the JQuery response data (Html.ActionLink) to HTML table element?

在我的 visual studio 2015 mvc web 应用程序中,我需要创建(追加)成功的 Ajax return 数据并将它们追加到 webgrid,但以下代码不会t编译,varhtml中dataval(id=dataval.id)的代码无法识别(编译)

有人知道如何让它工作吗?基本上,我需要使用来自 ajax 调用的其他数据 return 创建那些 Html.ActionLink。

$.each(response, function (j, dataval) {
  var html='@Html.Raw(HttpUtility.HtmlDecode(Html.ActionLink("Edit", "Edit", new { id = dataval.id }).ToHtmlString()))';
  html+='@Html.Raw(HttpUtility.HtmlDecode(Html.ActionLink("create", "Create", new { id = dataval.id }).ToHtmlString()))';
  html+='@Html.Raw(HttpUtility.HtmlDecode(Html.ActionLink("Invoice", "Invoice", new { id = dataval.id }).ToHtmlString()))';
  html+='@Html.Raw(HttpUtility.HtmlDecode(Html.ActionLink("Delete", "Delete", new { id = dataval.id }).ToHtmlString()))';

  $("#GridProductIndex").append('<tr><td>' + dataval.Prod_Name + '</td> + <td>' + dataval.Prod_Type + '</td> +<td>' + dataval.Prod_Status + '</td><td>' +
    html  + '</td></tr>'); 

});

添加更多,这里是我要将以上数据附加到的webgrid:

grid.Columns(
  grid.Column(columnName: "Prod_Name", header: "Product Name"),
  grid.Column(columnName: "Prod_Type", header: "Type"),
  grid.Column(columnName: "Prod_Status", header: "Status"),
  grid.Column(header: "Actions", format: (item) =>
    new HtmlString(

      Html.ActionLink("Edit", "Edit", new { id = item.ID }).ToString() + " | " +

      Html.ActionLink("create", "Create", new { id = item.ID }).ToString() + " | " +
      Html.ActionLink("Invoice", "Invoice", new { id = item.ID }).ToString() + " | " +
      Html.ActionLink("Delete", "Delete", new { id = item.ID }).ToString()

    ), style: "Action"

  )

您在用单引号括起来的字符串中使用单引号可能是个问题 => 在 .append(...)

中使用双引号

经过一番调查和搜索,解决方案如下:

var html = '<a href="@Url.Action("Edit")?id='+ dataval.id + '">Edit</a>';

从这里找到解决方案:https://forums.asp.net/t/1977920.aspx?Create+ActionLink+by+jQuery