2015-08-26 16 views
8

Web.Config dosyasındaki uygulamamdaki bir dosyanın yolunu belirtmek ve ardından denetleyicide bu yolu çağırmak istiyorum. İnternette bulduklarımdan, bu yoldan en çok uzaktayım.ASP.NET Göreli Yolu Web.Config dosyasındaki Dosyaya

Web.Config

<appSettings> 
    <add key="filePath" value= "~/App_Data/Physicians.xml" /> 
</appSettings> 

Kontrolör Ancak

//Path of the document  
string xmlData = ConfigurationManager.AppSettings["filePath"].ToString(); 

, bu yanlış konumu işaret ediyor.

enter image description here

nasıl uygulama kökünden başlayarak App_Data klasöründe sakladığınız ben dosyaya bu işaret edebilir?

cevap

17

Server.MapPath'u kullanabilirsiniz.

Veya alternatif olarak, yapılandırma dosyasında mağazası yalnızca göreli yol, daha sonra kullanın:

<appSettings> 
    <add key="filePath" value= "App_Data/Physicians.xml" /> 
</appSettings> 

string relativePath = ConfigurationManager.AppSettings["filePath"]; 
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, relativePath) 

ikincisi teknik olmayan web uygulamalarında çalışacak, böylece belki daha iyidir.

+0

Bunu biraz daha detaylandırır mısınız? Web.Config bölümünü yalnız bıraktığımı mı söylüyorsunuz? Bu aramayı kontrol cihazında nasıl yapacağınızı yazabilir misiniz? Yolumu nasıl kullanacağımı anlamıyorum. Elde ettiğim şeyle ya da bunların hepsini değiştirmem gerekirse. – madvora

+0

relativePath, Web.Config dosyanızda sakladığınız bölüm olacaktır. Tilda'yı yolunuzdan kaldırır ve ardından var relativePath = ConfigurationManager.AppSettings ["filePath"] gibi bir şey yaparsınız. ToString() ve sonra Path.Combine (AppDomain.CurrentDomain.BaseDirectory, relativePath) kullanırsınız. – Dylan

İlgili konular