ASP.NET MVC - 寻找绝对路径从控制器App_Data文件夹 [英] ASP.NET MVC - Find Absolute Path to the App_Data folder from Controller

查看:2480
本文介绍了ASP.NET MVC - 寻找绝对路径从控制器App_Data文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

什么是找到一个ASP.NET MVC项目的绝对路径从控制器App_Data文件夹的正确方法?我希望能够使用.xml文件暂时无法工作,我不希望到c的路径硬$ C $。

这不工作:

  [的HandleError]
公共类的HomeController:控制器
{
    公众的ActionResult指数()
    {
        字符串路径= VirtualPathUtility.ToAbsolute(〜/ App_Data文件/ somedata.xml);

        // ....做什么

        返回查看();
    }

}
 

我觉得在网络环境VirtualPathUtility.ToAbsolute()不工作之外。 字符串路径回来为C:\程序App_Data \ somedata.xml

我应该在哪里确定的.xml文件中的MVC应用程序的路径? Global.asax中,贴一个应用程序级的变量?

解决方案

ASP.NET MVC1 - > MVC3

 字符串路径= HttpContext.Current.Server.MapPath(〜/ App_Data文件/ somedata.xml);
 


ASP.NET MVC4

 字符串路径= HttpContext.Server.MapPath(〜/ App_Data文件/ somedata.xml);
 


MSDN参考:

<一个href="http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath(v=vs.110).aspx">HttpServerUtility.MapPath方法

What is the correct way to find the absolute path to the App_Data folder from a Controller in an ASP.NET MVC project? I'd like to be able to temporarily work with an .xml file and I don't want to hardcode the path.

This does not work:

[HandleError]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        string path = VirtualPathUtility.ToAbsolute("~/App_Data/somedata.xml");

        //.... do whatever 

        return View();
    }

}

I think outside of the web context VirtualPathUtility.ToAbsolute() doesn't work. string path comes back as "C:\App_Data\somedata.xml"

Where should I determine the path of the .xml file in an MVC app? global.asax and stick it an application-level variable?

解决方案

ASP.NET MVC1 -> MVC3

string path = HttpContext.Current.Server.MapPath("~/App_Data/somedata.xml");


ASP.NET MVC4

string path = HttpContext.Server.MapPath("~/App_Data/somedata.xml");


MSDN Reference:

HttpServerUtility.MapPath Method

这篇关于ASP.NET MVC - 寻找绝对路径从控制器App_Data文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆