2015-10-01 71 views
2

我想在運行時編輯wwwroot的內容,~/wwwroot怎麼映射(是否有一些實用程序,如VirtualPathUtility)?如何解決MVC5中的wwwroot路徑

VirtualPathUtility.ToAbsolute("~/wwwroot")不工作(預期)

+0

'HttpContext.Current.Server.MapPath()'? – mason

+0

System.Web.Hosting.HostingEnvironment.MapPath(「〜/ wwwroot」); ? –

+0

'System.Web.Hosting.HostingEnvironment.MapPath(「〜/ wwwroot」);'give'null' – James

回答

2

首先注入Microsoft.AspNet.Hosting.IHostingEnvironment在控制器的構造函數,然後使用MapPath方法是這樣的:

public class FooController : Controller 
{ 
    private readonly IHostingEnvironment _hostingEnvironment; 

    public FooController(IHostingEnvironment hostingEnvironment) 
    { 
     _hostingEnvironment= hostingEnvironment; 
    } 

    public IActionResult Bar() 
    { 
     // this maps to /wwwroot folder 
     var wwwroot = _hostingEnvironment.MapPath(""); 

     // this maps to /wwwroot/someFolder 
     var someFolder=_hostingEnvironment.MapPath("someFolder"); 
     return View(); 
    } 
} 
+0

'IHostingEnvironment'就是我所缺少的,謝謝! – James

相關問題