在mvc4中生成html的更好方法

时间:2013-11-18 18:21:55

标签: html asp.net-mvc-4

现在,我已在我的Mvc4项目中的.cs文件夹中有一个名为HTMLcreator的{​​{1}}类,这使得App_Code让我在我的文件中呈现视图。

我听说这不是最好的方法,更新html文件中的html元素很累。

为视图创建动态html的更好方法是什么?


HTMLcreator.cs:

.cs

View使用public static string methodOne() { StringBuilder result = new StringBuilder(); List<Subjects> subjects = Subjects.GetAll(); // Gets a some objects foreach (Subjects s in subjects) { result.Append("<p>" + s.name + "</p>"); if(s.hasChild) { result.Append(methodTwo(Subjects.GetChild(s))); } } return Convert.ToString(result); } public static string methodTwo(Subjects s) { StringBuilder result = new StringBuilder(); result.Append("<p>" + s.name + "</p>"); if(s.hasChild) { result.Append(methodTwo(Subjects.GetChild(s))); } return Convert.ToString(result); } 方法调用该方法。

1 个答案:

答案 0 :(得分:2)

这里你真正需要的是helper

@helper methodOne(Subjects subjects)
{
    foreach (var subject in subjects)
    {
        <p>@subject.name</p>

        if (subject.hasChild)
            @methodOne(Subjects.GetChild(subject))
    }
}

然后在视图中的某处使用它:

<div>
      @methodOne(subjects)
</div>

但是,如果您坚持自己生成HTML,最好使用System.Web.Mvc.TagBuilder

  

包含用于创建HTML元素的类和属性。   这个类用于编写帮助程序,例如在   System.Web.Helpers名称空间。

请参阅MSDN