我正在開發一個使用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