【问题标题】:Rendering Raw HTML data from a dynamically populated Json object从动态填充的 Json 对象呈现原始 HTML 数据
【发布时间】:2013-09-02 15:42:51
【问题描述】:

我有一个复杂的 Json 数据作为模型的一部分作为字符串。

在文档准备就绪时,我正在借助以下代码将一些 JSON 解析为 Javascript 对象:

    JSON.parse($('#myData').val());

我正在评估 JS 函数中的某些条件并获取原始 HTML 字符串(类似于:<h2><strong>Note :</strong> No Data found for the selection made</h2>

我想让 div 可见并在上面的语句被评估后在我的 HTML 正文中出现的 @Html.Raw() 中插入此代码。

例如:

<div id="divNoDataFoundMessage" style="display: none">
     <span class="" style="padding-right: 100px;">
      @{ 
           @Html.Raw()
       }
    </span>
 </div>

请帮助我如何将 document.ready 中的数据替换为上述代码以动态显示它。

<input type="hidden" value="@Model.MyListData"  id="myData"/>

 $(document).ready(function () {
        var jsonData = JSON.parse($('#myData').val());

        if (jsonData.NoDriversFound != "") {
            $("#divNoDataFoundMessage").show();
            $("#divNoDataFoundMessage span").text(jsonData.NoDriversFound);
        }
};

【问题讨论】:

  • 对不起,@{ @Html.Raw() 是什么?这是您想要换出消息的某种分隔符/标签吗?或者,这是您在服务器上运行的 MVC/Razor 帮助程序代码吗?您的 js 看起来不错,只要您的 if 条件为真并且您的 div(带有 id)存在于 DOM 中。
  • 您的问题有点令人困惑。您在 $(document).ready() 的客户端上处理一些 jQuery/Javascript,但也在谈论服务器端 Razor 标记,例如:@{ @Html.Raw() } @意欲来自。页面准备就绪后,它看起来就像预期的那样。
  • 为了让我的问题更清楚,我只是想在页面之后在 div 中呈现

    注意: No Data found for the selections

    完全加载。但是在这样做时,html标签会按原样出现,而不是被渲染。请帮我解决。

标签: javascript jquery asp.net-mvc


【解决方案1】:

要在 div 中动态放置 Html,请尝试如下:

$("#divID").html(JSON.parse($('#myData').val()));

【讨论】:

  • 不走运。 HTML 标记仍未呈现。
  • 其他一些问题是强制在 jquery 代码中抛出异常,一旦纠正,它就开始工作了。 :)
猜你喜欢
  • 2016-06-05
  • 2017-02-10
  • 1970-01-01
  • 2020-07-02
  • 1970-01-01
  • 1970-01-01
  • 2021-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多