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'> ×</a><strong style='width:12px'>Thanks!</strong> updated successfully</div>");
注意:不要忘记在你的视图页面中添加bootstrap css
和js
希望能帮助别人。
这看起来很好,除非你想把它作为模型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> }