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''>
×</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.