Cosa fa il file Web.Config nella cartella delle viste di un progetto MVC


86

Ho dei problemi con la distribuzione della mia applicazione e durante la risoluzione dei problemi, mi sono imbattuto nel Web.Configfile nella Viewscartella. Nel tentativo di restringere le possibilità delle fonti al mio problema, ho provato a scoprire lo scopo di quel file ~ Web.Config` ma non riesco a trovare molte informazioni.

Quindi fondamentalmente le mie domande sono:

  1. Cosa fa il Web.configfile nella Viewscartella di un progetto MVC?
  2. È necessario?

In Asp.Net webforms, credo che per utilizzare un file web.config separato in una cartella, quella cartella deve essere impostata come cartella virtuale in IIS. È questo il caso in MVC (cioè la Viewscartella deve essere configurata come una cartella virtuale)?


16
Non ci sono domande "stupide"
contattateci

9
Non aver mai paura di fare domande "stupide". Se non conosci la risposta, allora non è "stupida". Niente di "stupido" nell'ottenere una migliore comprensione di qualcosa.
DazManCat

5
SO è noto per bagnare gli utenti nel napalm per fare domande ...
Pangamma

Risposte:


79

No, non è necessario configurare una cartella virtuale a causa di questo file web.config aggiuntivo.

Il file web.config esiste nelle cartelle Views per impedire l'accesso alle visualizzazioni con qualsiasi mezzo diverso dal controller. Nel modello di progettazione MVC, i controller dovrebbero instradare le richieste e restituire una vista renderizzata al client chiamante.

In altre parole, la tua visualizzazione su www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx non dovrebbe essere direttamente accessibile.

Se dai un'occhiata al file web.config, registra effettivamente HttpNotFoundHandlertutti i percorsi e i verbi:

<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>

Oppure, in IIS 7 potrebbe sembrare

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

21
Ma il web.config generato contiene un'enorme quantità di altro testo: è tutto ridondante?
Eamon Nerbonne

7

Configura il compilatore per le viste come l'importazione di spazi dei nomi e fa sì che la cartella delle viste restituisca un 404.


7

Il file web.config nella cartella delle viste serve per eseguire alcune impostazioni specializzate che desideri applicare alle pagine all'interno della cartella delle viste.

Come le impostazioni di configurazione come: stringa di connessione / impostazioni app ecc.

ma sarà applicabile solo a quella cartella e il resto del progetto raccoglierà le impostazioni da web.config presente alla radice.

Specialmente quando si utilizza il concetto di area, ci sarà una cartella separata per ogni area contenente un file web.cfg separato in cui è possibile applicare impostazioni separate per ciascuna area.


6

Questo se vuoi sovrascrivere qualcosa menzionato in alto web.config, cioè se vuoi personalizzare qualcosa nell'ambito della Viewscartella.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.