如何在剃刀(CSHTML)中设置contenttype?

kid*_*man 12 asp.net-mvc razor asp.net-mvc-3

在经典的ASP.NET Web窗体视图引擎中,我们可以将.aspx页面中的ContentType设置为所需的类型.

Razor中有直接/推荐的等效物吗?

mar*_*ind 16

您应该在操作方法中设置不同的内容类型.

public ActionResult MyAction() {
    Response.ContentType = "something";
    return View();
}
Run Code Online (Sandbox Code Playgroud)

  • 不是这方面的专家,但我认为内容类型可以真正呈现特定的,而不需要知道它的动作?所以可能是视图的责任,而不必为它编写额外的代码(自定义ViewResult).假设您对html5(text/html),xhtml(application/xhtml + xml),wap(text/vnd.wap.wml)有不同视图的1个动作,控制器动作不需要知道HOW(选择哪个)它将被呈现,它将呈现什么(视图模型). (4认同)
  • 别忘了在视图中设置`@ {Layout = null}`:) (2认同)

Lui*_*rez 13

这将工作我只是测试它,你也可以添加以下行到您的cshtml:

Response.ContentType = "application/javascript";
Run Code Online (Sandbox Code Playgroud)

所以它看起来像这样:

@{
    ViewBag.Title = "Home Page";
    Response.ContentType = "application/javascript";
}
Run Code Online (Sandbox Code Playgroud)

这取决于您希望进行更改的位置.