首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >asp.net mvc3返回要查看的原始html

asp.net mvc3返回要查看的原始html
EN

Stack Overflow用户
提问于 2011-10-07 08:45:02
回答 6查看 105.5K关注 0票数 78

有没有其他方法可以从控制器返回原始的html?而不是仅仅使用viewbag。如下所示:

代码语言:javascript
复制
public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewBag.HtmlOutput = "<HTML></HTML>";
        return View();
    }
}

@{
    ViewBag.Title = "Index";
}

@Html.Raw(ViewBag.HtmlOutput)
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-10-07 14:57:37

这样做没有多大意义,因为View应该生成html,而不是控制器。但不管怎样,您可以使用Controller.Content method,它使您能够指定结果html、内容类型和编码

代码语言:javascript
复制
public ActionResult Index()
{
    return Content("<html></html>");
}

或者你可以使用asp.net-mvc框架中内置的技巧--让action直接返回字符串。它会将字符串内容传送到用户的浏览器中。

代码语言:javascript
复制
public string Index()
{
    return "<html></html>";
}

事实上,对于ActionResult以外的任何操作结果,框架都会尝试将其序列化为字符串并写入响应。

票数 153
EN

Stack Overflow用户

发布于 2011-10-07 12:23:17

只需在视图模型中创建一个MvcHtmlString类型的属性。那么你也不需要Html.Raw它了。

票数 8
EN

Stack Overflow用户

发布于 2020-07-30 17:09:45

我(ASP.NET核心)的工作是设置返回类型ContentResult,然后将HMTL包装到其中,并将ContentType设置为"text/html; charset=UTF-8"。这很重要,因为,否则它不会被解释为HTML,而HTML语言将显示为文本。

下面是这个示例,它是一个Controller类的一部分:

代码语言:javascript
复制
/// <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;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7682031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档