相关疑难解决方法(0)

ASP.NET MVC - 从Controller中查找App_Data文件夹的绝对路径

从ASP.NET MVC项目中的Controller查找App_Data文件夹的绝对路径的正确方法是什么?我希望能够临时使用.xml文件,我不想硬编码路径.

这不起作用:

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

        //.... do whatever 

        return View();
    }

}
Run Code Online (Sandbox Code Playgroud)

我认为在Web上下文之外VirtualPathUtility.ToAbsolute()不起作用.字符串路径返回"C:\ App_Data\somedata.xml"

我应该在哪里确定MVC应用程序中.xml文件的路径?global.asax并坚持使用应用程序级变量?

.net asp.net-mvc absolute-path

277
推荐指数
6
解决办法
25万
查看次数

获取ASP.Net MVC中任何文件的完整URL

我想在MVC中生成任何文件的完整Url(带域名等).示例:.jpg文件或exe文件.

示例:如果我提供"〜/ images/abc.jpg",则应返回" http://www.mywebsite.com/images/abc.jpg "

我知道Url.Action将协议作为参数的重载.但是Url.Action只能用于Actions.

我想要一些像Url.Content协议作为参数的功能.

你知道是否有任何方法来获取任何文件的完整URL?

我曾尝试:VirtualPathUtility.ToAbsolute,ResolveClientUrl,ResolveUrl但所有这些似乎并不管用.

asp.net-mvc asp.net-mvc-routing

29
推荐指数
2
解决办法
3万
查看次数

使用Url.Action的MVC属性路由不解析路由

@Url.Action根据我申请的属性路线,我无法解析我期望的网址:

我的动作(SearchController,但[RoutePrefix("add")])

     [Route("{searchTerm}/page/{page?}", Name = "NamedSearch")]
     [Route("~/add")]
     public ActionResult Index(string searchTerm = "", int page = 1)
     {
       ...
     }
Run Code Online (Sandbox Code Playgroud)

致电Url.Action

@Url.Action("Index", new { controller = "Search", searchTerm = "replaceMe", page = 1 })
Run Code Online (Sandbox Code Playgroud)

这导致了一个网址

/add?searchTerm=replaceMe&page=1

我期待

/add/replaceMe/page/1

如果我手动输入网址,则会使用正确的参数解析为正确的操作.为什么不@Url.Action解析正确的网址?

asp.net-mvc routes url-routing asp.net-mvc-routing attributerouting

12
推荐指数
2
解决办法
6791
查看次数