我的Mvc解决方案中有一个名为/ Admin
的区域在/ Admin / Views文件夹中有一个标准的web.config文件。
我在此配置文件中包含了system.web:
下的customerErrors元素<customErrors mode="On" defaultRedirect="~/admin/oops" >
<error statusCode="404" redirect="~/admin/pagenotfound"/>
</customErrors>
与我的根web.config中的不同。
我的期望是,这可以让我具体控制管理区域中如何处理错误。
这不起作用。
我是否正在服用疯狂的药丸,或者我是否可以使用该区域的web.config中的更具体的一个来覆盖默认的web.config设置?
答案 0 :(得分:3)
实际上这里有一篇关于mvc中的区域的文章。
根据这篇文章,我们无法覆盖设置..
Views文件夹中的Web.Config 视图文件夹中还提供了名为views的页面。在MVC中,视图不会直接通过URLS暴露给外部。所有视图请求都应该转到控制器,它将使用URL的输入呈现精确视图。视图是普通的asp.net网页,因此可以访问URL。要限制直接访问视图,我们在views文件夹中使用web.config文件。 web.config有一个默认的处理程序映射,用于阻止所有具有扩展名ASPX的页面。
Area文件夹中的Web.Config 类似地,对于视图,每个区域都有一个web.config文件,用于相同的目的。这是为了限制ASPX文件的访问。如果我们不想在区域级别限制它们,我们可以删除此web.Config文件。
Web.Config中的应用程序设置 有很多web.config文件;我们可以在区域特定的web.config文件中进行区域的应用程序设置吗?答案是否定,我们不能或没有或覆盖appsettings配置。应在根文件夹的web.config中定义所有应用程序设置