【问题标题】:Render DIV tag inside table using ASP .net MVC HTML helpers使用 ASP .net MVC HTML 帮助器在表格内呈现 DIV 标记
【发布时间】:2012-06-01 20:59:00
【问题描述】:

我正在尝试使用 ASP .net MVC 中的 HTML Helper 方法在 table td 标记内呈现一些 DIV。由于某种原因,没有呈现 div。这是我的示例代码。我的模型有两个属性 ID 和一个字符串列表。这些字符串基本上是 HTML DIV 标记。

<table>
<tr>
 <th>ID</th>
 <th>Schedule</th>
</tr>
<% foreach (var item in Model) { %>
  <tr>
    <td><%: Html.DisplayFor(modelItem => item.ID) %></td>
    <td>
       <% foreach (var bar in item.Details)
        {
           Html.DisplayFor(modelItem => bar);
        }       
        %>
    </td>
   </tr>
 <% } %>
</table>

视图由 ID 而非 DIV 标记填充。有人可以指出我做错了什么。

谢谢, 贾维德

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    您在Html.DisplayFor 周围缺少&lt;%: %&gt;

    <td>
       <% foreach (var bar in item.Details) { %>
           <%: Html.DisplayFor(modelItem => bar) %>
       <% } %>
    </td>
    

    因为Html.DisplayFor 不直接写入响应,只是将呈现的模板返回为MvcHtmlString,因此需要使用&lt;%: %&gt;“输出”。

    【讨论】:

    • 谢谢。现在,我将 DIV 呈现为文本而不是实际的 div 元素。在我的页面源代码中,我看不到
      但 &ltdiv..
    • 然后把&lt;%:改成&lt;%=就不会做html编码了。
    • 谢谢。我将 Html.DisplayFor 更改为 Html.Raw,现在 DIV 已呈现。
    【解决方案2】:

    您可以使用 jQuery 的 .getJSON 和 .html 方法来生成包含 DIV 的 HTML 标记:

       <script>
            $(document).ready(
                            function () {
                                $("#Button2").click(
                                        function () {
                                            $("#ohyeah").html("blah blah blah");
                                            var jsonlisteningobject = {};
                                            $.getJSON("/home/somefoo", null, function (data) {
                                                var div = $('#ohyeah');
                                                div.html("<td>" + data.someNumber + "</td><td>" + data.someString1 + "</td><td>" + data.someString2 + "</td><td>" + data.someListofStrings[3] + "</td>");
                                            }
                                                );
                                            $.getJSON("/home/someHTML", null, function (data) {
                                                $("#someHTMLstuff").html(data);
    
                                            });
                                        }
                                    );
    
            });
        </script>
    

    'someHTMLstuff' 和 'ohyeah' 可以是页面上的 DIV 元素。

    【讨论】:

    • 感谢您的建议。目前,我不喜欢使用任何 JSON 的东西,除非 JSON 是呈现 HTML 标记的唯一方式。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签