2010-08-16 4 views
0

Я занимаюсь тем, что займет у меня меньше 2 часов, чтобы сделать это в старых ASP.Net Web Forms, но оставил меня в тупике, как реализовать в ASP. Net 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 и ограничений. Существует множество обходных решений, использующих iframes для достижения результата, который вы пытаетесь получить.