我正在开发一个使用MVC 2的内部项目管理仪表板。其中一个要求是链接到我们本地服务器上已有的文档,换句话说,浏览到服务器,选择文件,点击添加,该项目的视图将包含链接。这里是我有(我已经留下了一些细节进行了简洁):ASP .NET MVC 2 - 浏览并添加链接到文档
型号:
public class AddDocumentModel
{
public HttpPostedFileBase DocumentLink { get; set; }
}
查看:
<%
using (Html.BeginForm(MVC.ProjectDetails.Actions.AddDoc(this.Model.ProjectID),
FormMethod.Post, new { enctype = "multipart/form-data" }))
{%>
<%=Html.TextBoxFor(a => a.DocumentLink,
new { type = "file", style = "width:100%;"})%>
<input type="submit" value="Add Document Link" />
<%} %>
控制器:
[AcceptVerbs(HttpVerbs.Post)]
public virtual ActionResult AddDoc(AddDocumentModel docModel)
{
var model = _projectManagementService.AddDocumentLink(
docModel.DocumentLink.FileName);
}
所以,正如你可以看到我使用HTML文本文件上传,但实际上没有上传,只是试图抓取路径和文件名,并使用它作为l墨水。然而,由于安全限制,这只能在IE中使用,因为没有其他浏览器会让你找到路径。另外,如果用户使用映射的驱动器,它将无法工作,因为完整的路径不会被使用,所以他们必须直接向服务器进行导航。
任何人都可以想到另一种方式来做到这一点?我希望能够使用上传功能提供的浏览功能,但不受限制。
目前我能想到的唯一(低科技)解决方案是让用户明确地将链接粘贴到文本框中。但宁愿更友好的东西。
在此先感谢。首先发布的问题太多,所以请友好:-)
如果我是在同样的情况,那么我只需要实现某种浏览Web应用程序内部的控制 - 也许TreeView是从服务器文件系统使用'System.DirectoryServices'中的功能填充的 – 2012-01-16 17:42:31
谢谢谢尔盖,我会有一个在这个名字空间中徘徊,看我是否可以使用任何东西 – 2012-01-17 14:04:41