mvc5 mvc existe contexto actual asp.net-mvc-3 controller return

asp.net mvc 3 - existe - asp.net mvc3 devuelve html sin procesar para ver



viewbag no existe en el contexto actual mvc 5 (6)

Controlador

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

Puntos de vista

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

¿Hay otras maneras en que pueda devolver html sin procesar desde el controlador? A diferencia de simplemente usar viewbag. como abajo:

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


En el controlador, puede usar MvcHtmlString

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

En su Vista, simplemente puede usar esa propiedad dinámica que configuró en su Controlador como se muestra a continuación

<div> @ViewBag.EncodedHtml </div>


Eso se ve bien, a menos que quieras pasarlo como una cadena modelo

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


Intente devolver el mensaje de alerta de arranque , esto funcionó para mí

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

Nota: No olvides agregar bootstrap css y js en tu página de visualización

la esperanza ayuda a alguien


No tiene mucho sentido hacer eso, porque View debería generar html, no el controlador. Pero de todos modos, podría usar el método Controller.Content , que le da la capacidad de especificar el resultado html, también el tipo de contenido y la codificación

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

O puede usar el truco construido en el marco asp.net-mvc: haga que la acción devuelva cadena directamente. Entregará contenidos de cadenas en el navegador de los usuarios.

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

De hecho, para cualquier resultado de acción que no sea ActionResult , framework intenta serializarlo en cadena y escribir en respuesta.


Simplemente cree una propiedad en su modelo de vista de tipo MvcHtmlString. No necesitarás Html.Raw tampoco.