asp.net mvc3 return raw html to view

后端 未结 7 677
时光说笑
时光说笑 2020-12-13 08:01

Are there other ways I can return raw html from controller? As opposed to just using viewbag. like below:

public class HomeController : Controller
{
    publ         


        
相关标签:
7条回答
  • 2020-12-13 08:31
    public ActionResult Questionnaire()
    {
        return Redirect("~/MedicalHistory.html");
    }
    
    0 讨论(0)
  • 2020-12-13 08:32

    Simply create a property in your view model of type MvcHtmlString. You won't need to Html.Raw it then either.

    0 讨论(0)
  • 2020-12-13 08:33

    What was working for me (ASP.NET Core), was to set return type ContentResult, then wrap the HMTL into it and set the ContentType to "text/html; charset=UTF-8". That is important, because, otherwise it will not be interpreted as HTML and the HTML language would be displayed as text.

    Here's the example, part of a Controller class:

    /// <summary>
    /// Startup message displayed in browser.
    /// </summary>
    /// <returns>HTML result</returns>
    [HttpGet]
    public ContentResult Get()
    {
        var result = Content("<html><title>DEMO</title><head><h2>Demo started successfully."
          + "<br/>Use <b><a href=\"http://localhost:5000/swagger\">Swagger</a></b>"
          + " to view API.</h2></head><body/></html>");
        result.ContentType = "text/html; charset=UTF-8";
        return result;
    }
    
    0 讨论(0)
  • 2020-12-13 08:36

    That looks fine, unless you want to pass it as Model string

    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            string model = "<HTML></HTML>";
            return View(model);
        }
    }
    
    @model string
    @{
        ViewBag.Title = "Index";
    }
    
    @Html.Raw(Model)
    
    0 讨论(0)
  • 2020-12-13 08:37

    Give a try to return bootstrap alert message, this worked for me

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

    Note: Don't forget to add bootstrap css and js in your view page

    hope helps someone.

    0 讨论(0)
  • 2020-12-13 08:42

    In controller you can use MvcHtmlString

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

    In your View you can simply use that dynamic property which you set in your Controller like below

    <div>
            @ViewBag.EncodedHtml
    </div>
    
    0 讨论(0)
提交回复
热议问题