【问题标题】:cshtml files not serving from subdirectorycshtml 文件不从子目录提供
【发布时间】:2014-12-29 22:47:00
【问题描述】:

首先,如果这个问题之前已经回答过,但我找不到有效的回答,我深表歉意。

我在 Visual Studio 2013 中创建了一个非常基本的网站,而不是应用程序或 MVC 或类似的东西。

默认文件为default.cshtml

1) 当我在调试模式下运行时,没问题
2) 当我发布到我的 IIS 7 服务器的 wwwroot 文件夹时,http://webserver/default.cshtml 有效
3) 当我发布到 wwwroot 的子文件夹时,http://webserver/folder/default.cshtml 给出“不提供此类页面”。错误信息

我知道服务器可以成功地将.cshtml 类型的文件提供给上面的#2。

那么我错过了什么,它不会从子目录中提供.cshtml

【问题讨论】:

    标签: c# asp.net razor


    【解决方案1】:

    cshtml 文件由 MVC 路由提供,而不是通过直接 URL 引用提供。 IIS 不知道如何处理cshtml 文件。

    基本上,您只能在路由网络应用程序中使用该文件类型,而不能在基本网站中使用。

    在 MVC 中,URL 将是 http://webserver/somecontrollerhttp://webserver/,并且路由将选择要运行和输出的 cshtml 文件。

    实际呈现的cshtml 文件是根据控制器名称、动作名称(在控制器上运行的方法)、动作返回的内容以及任何路由映射隐式选择的。

    【讨论】:

    • TrueBlueAussie,感谢您的回复。我了解 MVC 结构的概念以及控制器的工作原理,令我困惑的是,如果我发布到我网站的 ROOT 文件夹,一切都按预期工作。只有当我将文件移动到子文件夹时才会出现错误。呸呸呸
    • 我很惊讶它甚至允许cshtml 从根目录加载。这可能是其他东西的副作用(默认映射到根目录中的 default.cshtml?)#
    猜你喜欢
    • 2014-02-11
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 2015-08-13
    相关资源
    最近更新 更多