首页 > 解决方案 > 如何将 JQuery 响应数据 (Html.ActionLink) 解码为 HTML 表格元素?

问题描述

在我的 Visual Studio 2015 mvc Web 应用程序中,我需要创建(附加)成功的 Ajax 返回数据并将它们附加到 webgrid,但以下代码无法编译,dataval (id = dataval.id) 中的代码var html 无法识别(编译)。

有人知道如何使它工作吗?基本上,我需要使用从 ajax 调用返回的其他数据来创建那些 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"

  )

标签: jquerymodel-view-controllerasp.net-ajax

解决方案


在单引号中使用单引号的字符串中使用单引号可能是一个问题=>在该.append(...)行中使用双引号


推荐阅读