【问题标题】:In MVC what extension should the view file names have?在 MVC 中,视图文件名应该具有什么扩展名?
【发布时间】:2015-10-07 20:24:35
【问题描述】:

我收到了一个示例 MVC 项目,其中包含扩展名为 .aspx 的视图 但是,当我使用 VS2013 ASP.Net 向导创建一个新的 MVC 项目时,视图的扩展名为 .cshtml 有两种 MVC 项目吗?

【问题讨论】:

  • 这些与用于在视图中生成 html 标记的视图引擎(ASPX 或 Razor)有关。 Refer this article详细解释

标签: asp.net-mvc


【解决方案1】:

MVC 中的Views 指的是 C# 中的 .cshtml 文件或 Visual Basic 中的 .vbhtml 文件。

.aspx 文件是webform 文件,而不是视图——这是 ASP.NET 使 Web 表单开发更类似于桌面应用程序开发所采用的初始方法。这些页面通常作为实际文件包含在路由列表中,而 MVC 使用不基于现有文件的控制器路由(即 url 路径与传统 html 的文件和目录结构不匹配),最终服务观点。 .aspx 文件也可以有 code-behind 文件来将 html/aspx 标记与 .NET 代码分开;这些文件将具有.aspx.cs.aspx.vb 扩展名。在 MVC 应用中,这些文件也可能包含设计器文件。

名为MyPageaspx 文件的一组文件可能包含以下文件:

  1. MyPage.aspx
  2. MyPage.aspx.cs 或 MyPage.aspx.vb
  3. MyPage.aspx.designer.cs 或 MyPage.aspx.designer.vb

#3 中的文件可能会被隐藏,直到您在项目中选择“显示所有文件”,或者在传统的“网站”项目类型中可能根本不存在。我认为您必须先升级到“Web 应用程序项目 (Wap)”项目类型,然后才能集成 MVC,尽管我可能错了。所有 WAP 项目都应该有这些 .aspx.designer.xx 文件。

【讨论】:

  • 我给你投了赞成票,因为答案有很多好东西。也就是说,我认为这行可能是错误的:“.aspx 文件是 webform 文件,而不是视图。” System.Web.Mvc.WebFormViewEngine 让我们将它们用作视图。没有?
  • @ShaunLuttin,我不相信,我也没用过。我们通常将其从视图引擎列表中删除,以防止不必要的开销。根据我在以下链接中阅读的内容,RazorViewEngine 让您可以将 Razor 语法与@ 等一起使用。WebFormViewEngine 让您可以使用传统上在用于绑定到页面成员的旧 webforms aspx 代码。 c-sharpcorner.com/UploadFile/ff2f08/…
【解决方案2】:

在 MVC 中,视图文件名应该具有什么扩展名?

.cshtml 除非您有理由不将 Razor 视图引擎与 C# 一起使用。

有两种 MVC 项目吗?

相关的答案是有超过 2 个不同的视图引擎。剃刀was introduce in 2010。 Razor 视图引擎是 Visual Studio MVC 模板中现成的。请参阅ASP.NET MVC View Engine Comparison 以获取有关与 ASP.NET MVC 一起使用的更晦涩的视图引擎的更多信息。

【讨论】:

    猜你喜欢
    • 2017-07-22
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 2014-07-30
    • 2015-07-03
    • 1970-01-01
    • 2020-07-20
    • 2017-04-17
    相关资源
    最近更新 更多