asp.net mvc3 вернуть исходный HTML-код для просмотра
есть ли другие способы, которыми я могу вернуть raw html из контроллера? В отличие от просто использования viewbag. как показано ниже:
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.HtmlOutput = "<HTML></HTML>";
return View();
}
}
@{
ViewBag.Title = "Index";
}
@Html.Raw(ViewBag.HtmlOutput)
6 ответов:
в этом нет особого смысла, потому что
Viewдолжен генерировать html, а не контроллер. Но в любом случае, вы могли бы использовать контроллер.Метод контент, что дает вам возможность указать результат html, а также тип контента и кодировкуpublic ActionResult Index() { return Content("<html></html>"); }или вы можете использовать трюк, встроенный в asp. net-MVC framework-сделать действие возвращает строку напрямую. Он будет доставлять содержимое строки в браузер пользователей.
public string Index() { return "<html></html>"; }в самом деле, за какие-либо действия результате кроме
ActionResult, framework пытается сериализовать его в строку и записать в ответ.
просто создайте свойство в модели представления типа MvcHtmlString. Вам не нужно будет Html.Сырой он тогда тоже.
дать попробовать возвратите bootstrap alert message, это работает для меня
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на странице просмотранадеюсь кому-нибудь поможет.
это выглядит нормально, если вы не хотите передать его как строку модели
public class HomeController : Controller { public ActionResult Index() { string model = "<HTML></HTML>"; return View(model); } } @model string @{ ViewBag.Title = "Index"; } @Html.Raw(Model)
в контроллере вы можете использовать
MvcHtmlStringpublic class HomeController : Controller { public ActionResult Index() { string rawHtml = "<HTML></HTML>"; ViewBag.EncodedHtml = MvcHtmlString.Create(rawHtml); return View(); } }на ваш взгляд, вы можете просто использовать это динамическое свойство, которое вы установили в своем контроллере, как показано ниже
<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> }
Comments