Existe-t-il d'autres moyens de retourner du code HTML brut à partir du contrôleur? Par opposition à simplement utiliser viewbag. comme ci-dessous:
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.HtmlOutput = "<HTML></HTML>";
return View();
}
}
@{
ViewBag.Title = "Index";
}
@Html.Raw(ViewBag.HtmlOutput)
Cela n'a pas beaucoup de sens, car View
devrait générer du HTML, pas du contrôleur. Quoi qu'il en soit, vous pouvez utiliser méthode Controller.Content , ce qui vous permet de spécifier le résultat html, ainsi que le type de contenu et l'encodage.
public ActionResult Index()
{
return Content("<html></html>");
}
Ou vous pouvez utiliser l'astuce construite dans le framework asp.net-mvc - rendre la chaîne de retour d'action directement. Il livrera le contenu de la chaîne dans le navigateur de l'utilisateur.
public string Index()
{
return "<html></html>";
}
En fait, pour tout résultat d'action autre que ActionResult
, Framework tente de le sérialiser en chaîne et d'écrire dans la réponse.
Créez simplement une propriété dans votre modèle de vue de type MvcHtmlString. Vous n'aurez pas besoin de Html.Raw alors non plus.
Essayez de retournez bootstrap, cela a fonctionné pour moi
return Content("<div class='alert alert-success'><a class='close' data-dismiss='alert'>
×</a><strong style='width:12px'>Thanks!</strong> updated successfully</div>");
Note: N'oubliez pas d'ajouter bootstrap css
et js
dans votre page d'affichage
l'espoir aide quelqu'un.
Cela a l'air bien, sauf si vous voulez le transmettre en tant que chaîne de modèle
public class HomeController : Controller
{
public ActionResult Index()
{
string model = "<HTML></HTML>";
return View(model);
}
}
@model string
@{
ViewBag.Title = "Index";
}
@Html.Raw(Model)