ASP.NET入门基础教程查看

1、入门教程

https://blog.csdn.net/qq_21419015/article/category/7688363?tdsourcetag=s_pcqq_aiomsg

以下是在学习上面的入门教程时遇到的问题,然后一个个记录的解决办法。

2、MVC 项目为什么有两个web.config文件,如图:

一个在Views下,仅对View起作用;
一个在根目录下,对根目录下所有文件起作用。
这样做可以起到对View更精细的控制

/Views/Web.config

这不是你的应用程序 Web.Config 文件。 它只包含一个指令指示web服务器不提供任何 *.aspx 文件下/Views ( 因为它们应该由一个控制器呈现,而不是像传统的web forms *.aspx 文件那样直接调用) 。 这里文件还包含使标准 ASP.NET ASPX页面编译器能够正确使用 ASP.NET MVC视图模板的配置。

/Web.Config

这将定义你的应用程序配置。

这来自于 ASP.NET MVC框架

视图目录中的web.Config 有一个重要条目,它阻止直接访问:

<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />

所以我们不能手动访问 localhost:52081/Views/First/Index.cshtml 这个页面。

默认情况下,mvc是不允许views目录下的文件对外访问的,而静态文件最好也不要放在views目录下!

那在 MVC 项目中,如何访问Views目录下的静态文件?

<!--注意,是system.webServer节点,而非system.web-->
<system.webServer>
<handlers>
  <add name="JavaScriptHandler" path="*.js" verb="*" preCondition="integratedMode" type="System.Web.StaticFileHandler" />      
  <add name="HtmlScriptHandler" path="*.html" verb="*" preCondition="integratedMode" type="System.Web.StaticFileHandler" />
  <!--以下节点为默认-->
  <remove name="BlockViewHandler"/>
  <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>

猜你喜欢

转载自blog.csdn.net/qq_38261174/article/details/87894814