使用ASP .net MVC HTML帮助器在表中呈现DIV标记

时间:2012-06-01 20:59:01

标签: asp.net-mvc

我正在尝试使用ASP .net MVC中的HTML Helper方法在表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标记。有人能指出我可能做错了什么。

谢谢, Javid

2 个答案:

答案 0 :(得分:1)

您错过了<%: %>

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

因为Html.DisplayFor没有直接写入Response只会将呈现的模板返回为MvcHtmlString,所以需要使用<%: %>“输出”。

答案 1 :(得分: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元素。