Использование ASP.NET MVC & AJAX для загрузки файла и просмотра изображения - PullRequest
0 голосов
/ 17 августа 2010

Я делаю то, что заняло бы у меня менее 2 часов в старых веб-формах ASP.Net, но оставило меня в тупике при реализации в ASP.Net MVC.

Я пытаюсь собрать очень простой админ-сайт о музыкантах. у музыканта есть соответствующая фотография, а затем некоторые детали, такие как имя, возраст, родной город и фотография профиля.

Когда пользователь с правами администратора создает музыканта, в представлении создания загружается файл, и при изменении загрузки файла должно появиться изображение для предварительного просмотра. Страница создания также имеет поля формы для других входных данных.

В подробностях, изображение профиля музыканта должно отображаться рядом с деталями.

В режиме редактирования снова должно появиться существующее изображение, и если пользователь решит изменить изображение, изображение снова изменится там же, без перезагрузки страницы.

Это кажется невероятно простым, но я действительно изо всех сил пытаюсь понять, как архитектура ASP.Net MVC делает это возможным без большой работы.

Ответы [ 2 ]

0 голосов
/ 17 августа 2010

Это не имеет ничего общего с архитектурой MVC.Я думаю, что вам может понадобиться изучить загрузку изображений с AJAX и ограничения там.Существует множество обходных путей, использующих фреймы для достижения желаемого результата.

0 голосов
/ 17 августа 2010

С какой именно частью у вас проблемы?Чтобы загрузить файл, вы начинаете с формы, в которой публикуется файл, и дополнительных свойств, подобных этому.

<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 - это не слишком много работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...