溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ASP.NET?MVC中兩個配置文件的作用是什么

發(fā)布時間:2022-03-18 11:25:50 來源:億速云 閱讀:186 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下ASP.NET MVC中兩個配置文件的作用是什么,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

前言

在新建完一個MVC項(xiàng)目之后,你會發(fā)現(xiàn)整個整個項(xiàng)目結(jié)構(gòu)中存在有兩個web.config文件,如下圖所示:

ASP.NET?MVC中兩個配置文件的作用是什么

這兩個配置文件,一個位于項(xiàng)目的根目錄下面,一個位于Views文件夾下面,這兩個配置文件有什么不同呢?

一、根目錄下面的配置文件

跟目錄下面的web.config配置文件代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<!--
  有關(guān)如何配置 ASP.NET 應(yīng)用程序的詳細(xì)信息,請?jiān)L問
  https://go.microsoft.com/fwlink/?LinkId=301880
  -->
<configuration>
  <appSettings>
    <add key="webpages:Version" value="3.0.0.0"/>
    <add key="webpages:Enabled" value="false"/>
    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.6.1"/>
    <httpRuntime targetFramework="4.6.1"/>
  </system.web>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f"/>
        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51"/>
        <bindingRedirect oldVersion="0.0.0.0-4.0.2.1" newVersion="4.0.2.1"/>
      </dependentAssembly>      
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"/>
        <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-5.2.4.0" newVersion="5.2.4.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <system.webServer>
    <modules>
      <remove name="TelemetryCorrelationHttpModule"/>
      <add name="TelemetryCorrelationHttpModule"
        type="Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation"
        preCondition="integratedMode,managedHandler"/>
    </modules>
  </system.webServer>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
    </compilers>
  </system.codedom>
</configuration>

這個配置文件主要是用來配置數(shù)據(jù)庫連接字符串、日志輸出路徑等信息的,比如配置數(shù)據(jù)庫連接字符串

ASP.NET?MVC中兩個配置文件的作用是什么

二、Views文件夾下面的配置文件

Views文件夾下面的配置文件主要是用來引入一些cshtml頁面中的命名空間

ASP.NET?MVC中兩個配置文件的作用是什么

在上一篇文章中,我們?nèi)绻賑shtml視圖頁面中使用Student實(shí)體類,需要首先在頁面中引入Student的命名空間:

ASP.NET?MVC中兩個配置文件的作用是什么

如果cshtml頁面都需要使用到Student類,那么每個頁面都需要先引入Student類的命名空間才可以使用,這樣會有很多重復(fù)的工作,可以把Student類的命名空間添加到Views文件夾下的配置文件中,這樣就不需要每個頁面都引入Student類的命名空間了

ASP.NET?MVC中兩個配置文件的作用是什么

然后把ViewDataDemo對應(yīng)的Index視圖修改如下:

@*引入Student的命名空間*@
@*@using MVCStudyDemo.Models; 去掉引入Student命名空間,在web.config文件里面引入 *@ 
@{
    ViewBag.Title = "Index";
    // 這里使用的是Razor語法,寫的是后臺C#代碼
    // ViewData的Value值是Object類型的,需要進(jìn)行類型轉(zhuǎn)換
    // 常規(guī)寫法是先在這里進(jìn)行類型轉(zhuǎn)換
    var list = ViewData["Data"] as List<Student>;
}

<h3>通過ViewData向View傳遞數(shù)據(jù)</h3>
<div class="jumbotron">
        <div>
            <div>
                1、傳遞字符串 other:@ViewData["Other"];
            </div>
            <div>
                2、傳遞字符串 name:@ViewData["name"];
            </div>
            <div>
                3、傳遞字符串 age:@ViewData["age"];
            </div>
            <div>
                4、傳遞集合方式一
                @foreach (var item in list)
                {
                    <div>
                        ID:@item.ID  Name:@item.Name  Age:@item.Age  Sex:@item.Sex  Email:@item.Email
                    </div>
                }
            </div>
            <div>
                5、傳遞集合方式二
                @foreach (var item in ViewData["Data"] as List<Student>)
                {
                    <div>
                        ID:@item.ID  Name:@item.Name  Age:@item.Age  Sex:@item.Sex  Email:@item.Email
                    </div>
                }
            </div>
        </div>
</div>

注意:在Index視圖里面去掉命名空間以后,Student實(shí)體類會標(biāo)紅,不影響程序。

ASP.NET?MVC中兩個配置文件的作用是什么

重新生成程序,然后運(yùn)行:

ASP.NET?MVC中兩個配置文件的作用是什么

看完了這篇文章,相信你對“ASP.NET MVC中兩個配置文件的作用是什么”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI