1

我正在尝试使用 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 标记填充。有人可以指出我可能做错了什么。

谢谢,贾维德

4

2 回答 2

1

你错过了<%: %>周围的Html.DisplayFor

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

因为Html.DisplayFor不直接写入 Response 只是将呈现的模板返回为 a MvcHtmlString,所以它需要与<%: %>.

于 2012-06-01T21:08:39.733 回答
0

您可以将 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 元素。

于 2012-06-01T21:13:44.717 回答