从asp net mvc 5中的url获取虚拟路径

时间:2014-06-25 19:44:58

标签: asp.net .net asp.net-mvc

我想将http://localhost/app/Uploads/file.png之类的网址转换为我的应用虚拟路径,即~/Uploads/file.txt

我的问题是如何在asp net mvc中完成?

编辑:对我的情景进行一些解释,以便进一步澄清。

我有一个“创建”表单。在此表单中,用户可以设置其配置文件,并可以将照片上传到服务器。可以通过异步上传到服务器来预览此照片。这是通过FileUploadController的动作Post()来完成的,它是一个ApiController。此操作只是将上传的文件保存到虚拟路径“〜/ Uploads /”,然后将完整的URL返回到保存的文件,如http://localhost/app/Uploads/file.png。然后,页面上的javascript会捕获此网址并更新<img>标记以显示图片,并使用此网址设置隐藏输入字段的值。这很好。

现在,我必须实施此“创建”表单的提交操作。除此之外,动作视图模型接收照片的URL,即http://localhost/app/Uploads/file.png,它应该用于将文件'file.png'从临时位置“〜/ Uploads / file.png”复制到另一个地点。但是,要复制此文件,我需要本地路径,而我所拥有的只是网址。

1 个答案:

答案 0 :(得分:3)

你可以这样做。 在剃须刀视图中写下此内容以获取根相对路径

<script type="text/javascript">
   var baseUrl = '@Url.Content("~")';
</script>

然后,在您的提交按钮的客户端操作中,您可以访问并将localpath传递给控制器​​的文件复制操作方法。

$("#submit").click(function () {
    var localpath = baseUrl + "Uploads/file.png";
    ...
    ...
});

以下是link我的另一篇文章,几乎是一个类似的问题。