asp.net mvc3返回原始html来查看

有没有其他的方法可以从控制器返回原始的HTML? 而不是只使用viewbag。 如下所示:

public class HomeController : Controller { public ActionResult Index() { ViewBag.HtmlOutput = "<HTML></HTML>"; return View(); } } @{ ViewBag.Title = "Index"; } @Html.Raw(ViewBag.HtmlOutput) 

这样做没什么意义,因为View应该生成html,而不是控制器。 但无论如何,你可以使用Controller.Content方法 ,它可以让你指定结果的HTML,也是内容types和编码

 public ActionResult Index() { return Content("<html></html>"); } 

或者你可以使用在asp.net-mvc框架中构build的技巧 – 直接使动作返回string。 它将string内容传送到用户的浏览器。

 public string Index() { return "<html></html>"; } 

事实上,对于除ActionResult之外的任何操作结果,框架会尝试将其序列化为string并写入响应。

只需在您的MvcHtmlStringtypes的视图模型中创build一个属性。 那么你也不需要Html.Raw。

尝试返回引导警报消息 ,这对我工作

 return Content("<div class='alert alert-success'><a class='close' data-dismiss='alert'> &times;</a><strong style='width:12px'>Thanks!</strong> updated successfully</div>"); 

注意:不要忘记在你的视图页面中添加bootstrap cssjs

希望能帮助别人。

这看起来很好,除非你想把它作为模型string传递

 public class HomeController : Controller { public ActionResult Index() { string model = "<HTML></HTML>"; return View(model); } } @model string @{ ViewBag.Title = "Index"; } @Html.Raw(Model) 

在控制器中,你可以使用MvcHtmlString

 public class HomeController : Controller { public ActionResult Index() { string rawHtml = "<HTML></HTML>"; ViewBag.EncodedHtml = MvcHtmlString.Create(rawHtml); return View(); } } 

在您的视图中,您可以简单地使用您在Controller中设置的dynamic属性,如下所示

 <div> @ViewBag.EncodedHtml </div> 

调节器

  public class HomeController : Controller { public ActionResult Index() { ViewBag.show = false; return View(); } } 

查看

  @{ ViewBag.Title = "Index"; } @if (ViewBag.show == false){ <div > @*your code*@ </div> }