将字符串渲染为MVC视图

时间:2014-02-26 12:33:12

标签: asp.net-mvc razorengine

我有一个简单的Email Composer类,我从中获取所有Application Emails内容。 在此示例中,它将产品发送到电子邮件。

现在,我想打印它们,我正在尝试重复使用相同的方法从Email Composer中获取完整的html并将其输出到View

控制器动作

public ActionResult PrintRules()
{
    var products = rep.ListAllProductsByCompanyId(currentCompany.company_id);
    string body = mail.GetProductRules(products);

    ViewBag.email = HttpUtility.HtmlEncode(body);
    return View();
}

视图是:

@{
    Layout = null;
    string email = HttpUtility.HtmlDecode(ViewBag.email);
}

@Html.Raw(email)

<script>
     window.print();
</script>

如果我将body作为Model传递,我会在解析器上收到错误,因此我使用的是ViewBag

作为输出:

  • @Html.Raw(email)根本不输出任何内容
  • @Html.Raw(email.Length)将输出17463
  • @email将输出代码但浏览器输出代码,不解析它(图片如下)

我错过了什么?我知道这一定是一件非常简单的事情,但我完全是空白......


使用@email

的浏览器输出

enter image description here

1 个答案:

答案 0 :(得分:0)

试试这个

@(new HtmlString(mystring))

@MvcHtmlString.Create(ViewBag.Stuff)