【问题标题】:Using Html instead of csHtml使用 Html 代替 csHtml
【发布时间】:2013-08-04 18:36:26
【问题描述】:

我想在 MVC .net 中使用纯 html 页面而不是 cshtml。 但是当我通过右键单击索引添加视图时,我只能看到两个选项。

 public class HomeController : Controller
{
    //
    // GET: /Home/

    public ActionResult Index()
    {
        return View();
    }}
  1. Cshtml(剃刀)
  2. aspx

我关注了 Can I serve .html files using Razor as if they were .cshtml files without changing the extension of all my pages?

论坛,但仍然没有帮助。我仍然没有看到添加 html 而不是 cshtml 的选项

我也尝试将 html 页面直接添加到视图文件夹,但我不知道如何从我的控制器功能指向该视图。

用 Index.html 替换 Index.cshtml 给了我这个错误

The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched:

~/Views/Home/Index.aspx
~/Views/Home/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/Home/Index.cshtml
~/Views/Home/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml

【问题讨论】:

  • 您是否要在主布局中提供一个全新的 html 页面?
  • stackoverflow.com/questions/1292475/… POST 中的这个答案也很好用......
  • 有人可以修复这篇文章中的代码缩进/格式吗?

标签: asp.net asp.net-mvc razor


【解决方案1】:

为了呈现纯 HTML 文件,您可以使用

return new FilePathResult(HtmlPath, "text/html");

HtmlPath 在哪里

Server.MapPath(string.Format("~/Views/{0}/{1}.html", YourControllerName, YourHtmlfileName))

【讨论】:

  • 谢谢,这确实是正确的答案。接受的答案是not纯 HTML,其他答案不允许正确的路由和控制器操作。
  • 我只想使用 .html 文件(我不希望客户端代码和服务器端代码混合在一起)。我试过你的建议......没关系,但我有一个问题:“我该如何使用布局”?
  • @Deka 你不能使用纯 HTML 的布局,除非你使用客户端框架来做。
  • @dwbartz:我想是的
【解决方案2】:

您可以使用常规 cshtml 文件创建一个视图,将其添加到控制器中,然后在视图本身中使用纯 html 并将以下内容添加到顶部:

@{
    Layout = null;
}

这样你使用一个不使用你的主布局文件的cshtml文件。并且只提供您放入其中的任何 html。

【讨论】:

    【解决方案3】:

    如果它是一个静态 html 文件,则不需要将控制器指向它,因为 IIS 可以很好地为它们提供服务。将一个 html 文件添加到您的项目中(在任何地方,但不在视图文件夹中),然后将您的浏览器指向该文件。

    【讨论】:

      【解决方案4】:

      如果您右键单击您的Content 文件夹,您可以选择“添加新项目...”。然后,您可以选择左侧树中的“Web”,然后选择右侧的“HTML Page”。

      这应该会为您添加一个 HTML 页面。

      【讨论】:

      • 我不知道如何让我的控制器指向那个 html 文件。还编辑了问题以使其更清楚
      • 控制器(或者说动作)与视图“绑定”。您不会通过控制器提供这些页面,而是通过老式的anchor tags 提供这些页面
      • @user2374966 最好阅读一下 ASP.NET 中的 MVC 是如何工作的,一方面是 MVC 的全部机制,包括路由、控制器、视图模型和视图,另一方面手上有简单的旧内容。您的 HTML 文件,如 CSS、图像等,将是纯旧内容。只是放置在服务器上某个可访问位置的文件。
      【解决方案5】:

      添加一个文件。重命名它。 解决方案资源管理器中的 F2。

      【讨论】:

      • 重命名它给了我错误。我编辑了帖子以包含错误
      • 当然。我的错。只需将其称为 cshtml,但将其编码为 html。请参阅@sergioadh 的回答。
      猜你喜欢
      • 2019-04-09
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 2012-12-04
      • 2020-03-02
      • 1970-01-01
      • 2020-04-22
      • 1970-01-01
      相关资源
      最近更新 更多