将对象渲染为html的最佳方法

时间:2011-01-12 15:57:23

标签: c# html asp.net-mvc-2

将数据对象渲染为html的最佳方法是什么?

考虑到我的对象应该在页面上动态绘制,它将由多个控件(Labels,TextBoxes,CheckBoxes,DropdownLists等等)组成。

我的对象是一个包含部分的报告。

每个部分都包含groups.Groups应绘制为Accordion视图。

组包含的字段将根据指定的字段类型呈现为Labels,TextBoxes,CheckBoxes或DropdownLists。

渲染该对象的最佳方法是什么?

我正在使用asp.net mvc 2

2 个答案:

答案 0 :(得分:1)

查看DisplayTemplates。

它的工作方式如下: 你有一个ascx文件“部分视图”,与你的同名和“强类型”相同。把它放在/ Views / Shared / DisplayTemplates“。

然后你就可以使用Html.Display(“varName”,“className”);使用DisplayTemplate显示您的对象。

控制器:

ViewData["var"] = new MyClass();

查看:

Html.Display("var","MyClass");

查看/共享/ DisplayTemplates / MyClass.ascx

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyNamespace.MyClass]>" %>
<div class="Hey">
  <!-- code for showing my class here -->
  <% Model.Property; //Model is of type MyClass
           %>
</div>

http://www.asp.net/mvc/videos/mvc2-template-customization

http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx

答案 1 :(得分:0)

最好的方法是创建一个View,然后使用Html帮助器类/方法。有关详细信息,请参阅here

这样的事情应该让你开始:

<% Html.TextBox("stringData", Model.YourString) %>
<% Html.CheckBox("boolData", Model.YourBool) %>