从字符串渲染视图

时间:2013-11-12 17:47:13

标签: asp.net-mvc render

我需要像这样的字符串渲染视图:

public class Controller : System.Web.Mvc.Controller
{
    public ViewResult ViewList()
    {
        string html = "<div id=\"contentView\">";
        html += Title(null);
        html += GridControls(null);
        html += FilterControls(null);
        html += Grid(null, new Sibi.Seg.User().List(pagina));
        html += "</div>";
        return View(html );
    }

}

然后我需要在Controller中返回View()时渲染此字符串,请参阅:

public ActionResult Index()
{
      return ViewList();
}

1 个答案:

答案 0 :(得分:1)

您可以使用控制器的Content方法。您的代码将如下所示:

public ActionResult ViewList()
{
    string html = "<div id=\"contentView\">";
    html += Title(null);
    html += GridControls(null);
    html += FilterControls(null);
    html += Grid(null, new Sibi.Seg.User().List(pagina));
    html += "</div>";
    return Content(html, "text/html");
}

或者您可以将内部代码移动到静态类并从mvc视图调用静态方法,例如:

@{
    Layout = null;
}
<div id="contentView">
    @(Html.Raw(StaticMethods.Title(null)))
    @(Html.Raw(StaticMethods.GridControls(null)))
    @(Html.Raw(StaticMethods.FilterControls(null)))
    @(Html.Raw(StaticMethods.Grid(null, new Sibi.Seg.User().List(pagina))))
</div>

这两种解决方案中的任何一种都会产生相同的结果。