18

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

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

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

我关注 了我可以使用 Razor 提供 .html 文件,就好像它们是 .cshtml 文件一样,而不更改我所有页面的扩展名?

论坛,但仍然没有帮助。我仍然看不到添加 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
4

5 回答 5

14

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

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

HtmlPath 在哪里

Server.MapPath(string.Format("~/Views/{0}/{1}.html", YourControllerName, YourHtmlfileName))
于 2014-06-27T11:52:02.273 回答
11

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

@{
    Layout = null;
}

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

于 2013-08-04T19:33:02.593 回答
9

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

于 2013-08-04T19:21:07.073 回答
1

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

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

于 2013-08-04T18:42:57.187 回答
-2

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

于 2013-08-04T18:59:38.757 回答