2010-08-16 64 views
0

我正在做什麼會花我2個小時做舊的ASP.Net Web窗體,但讓我難以理解如何在ASP中實現。網絡MVC。使用ASP.NET MVC&AJAX做一個文件上傳和預覽圖像

我想把關於音樂家的一個非常基本的管理網站放在一起。一位音樂家有一張關於他們自己的照片,然後是一些細節,如姓名,年齡,家鄉以及個人資料照片。

當管理員用戶創建音樂家時,創建視圖具有文件上傳以及文件上傳的更改,應顯示預覽圖像。創建頁面也有其他輸入的表單域。

在細節視圖中,音樂家的個人資料圖片應該顯示在細節旁邊。

處於編輯模式時,再次顯示現有圖像,如果用戶選擇更改圖片,則圖片會再次在當地更改,無需重新加載頁面。

這似乎非常容易,但我真的很難看到ASP.Net MVC架構如何在沒有大量工作的情況下實現這一點。

回答

0

你到底有什麼問題?要上傳文件,首先使用發佈文件的表單和像這樣的額外屬性。

<form action="yourcontroller/savefile" method="post" enctype="mulitipart/form-data"> 
    <input type="file" name="file" /> 
    <input type="text" name="other" /> 
</form> 

然後,您將需要一個控制器操作來處理帖子。該文件可以綁定到一個HttpPostedFileBase對象,該對象有一個保存它的方法。其他表單輸入也可以綁定。最後,顯示您只需將圖像路徑傳遞給視圖以進行渲染的圖像。

public ActionResult SaveFileAction(string other, HttpPostedFileBase file) 
{ 
    file.SaveAs("/path/to/save/");  // Note Server.MapPath() converts urls to  
             // a physical path which might help. 

    ViewData["path"] = "/url/to/image"; // Add the URL to the view date so we can 
             // use it in the view 

    return View(); 
} 

最後在視圖視圖中我們可以渲染上傳的圖像。

<img src="<%= imageUrl %>" /> 

很顯然,你將有更多的考慮您的應用程序,但希望這有助於顯示,上傳和在ASP.NET MVC則顯示圖像是沒有太多的工作。

0

這與MVC架構沒有多大關係。我想你可能需要研究用AJAX上傳圖片以及存在的侷限性。有很多解決方法使用iframe來實現您試圖獲得的結果。