从控制器在视图中以编程方式获取HTML的最佳方法是什么。 我有时会使用字符串构建器来渲染一些html并从控制器发送它的视图。它有效吗?
你们有什么建议?
答案 0 :(得分:2)
HtmlHelpers就是为了这个。更好的选择是创建一个HtmlHelper,它将生成您需要的标记,您所做的就是将对象传递给它(从视图中的Model或ViewData),并为您输出正确的标记。有一个TagBuilder
对象可以简化您需要的一切。
public static string MyHtmlHelper(this HtmlHelper html, string url)
{
TagBuilder tag = new TagBuilder("a");
tag.Attributes.Add("href", url);
return tag.ToString();
}
然后在你看来:
<%= Html.MyHtmlHelper(ViewData["MyUrl"].ToString()) %>
这只是一个简单的例子,您可以根据自己的喜好进行推断。
搜索asp.net mvc html helpers
以了解其工作原理以及扩展方法的工作原理。
答案 1 :(得分:1)
使用StringBuilder组装HTML并在视图中呈现它没有任何问题,只要你正确地逃避它。
然而,它的设计很差 控制者应该不了解演示文稿;所有的HTML都应该在视图中 你想做什么?