Помогите с воссозданием загрузки изображений Wordpress с ASP MVC3 - PullRequest
0 голосов
/ 23 августа 2011

Я пытаюсь воссоздать функцию загрузки изображений Wordpress в MVC3, где всплывающее окно позволяет вставлять URL-адрес изображения и редактировать свойства изображения, такие как тег alt, размер и положение после его загрузки на сервер. Я попытался поиграться с jqueryUi и загрузкой ActionResult и смог загрузить файл, но теперь я в тупике, пытаясь вернуть загруженный URL-адрес обратно во всплывающее окно.

Кто-нибудь пытался и преуспел с этим?

EDIT:

Вот мой ActionResult, который загружает и готовит URL загруженного изображения.

[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
    if (file != null && file.ContentLength > 0)
    {
    var fileName = Path.GetFileName(file.FileName);
    var path = Path.Combine(Server.MapPath("~/Content/Uploads"), fileName);
    file.SaveAs(path);
    //Below is the path I want returned to mypop-up
    ViewBag.WebPath = "/Content/Uploads/" + fileName;
    }
    //no idea which Return string to use...
}

Мой диалог jqueryui:

$('#upload-dialog').dialog({
            autoOpen: false,
            width: 600,
            resizable: false,
            title: 'Upload Image',
            modal: true,
            open: function (event, ui) {
                $(this).load('@Url.Action("UploadImagePartial")');
            },
            buttons: {
                "Close": function () {
                    $(this).dialog("close");
                }
            }
        });

1 Ответ

1 голос
/ 23 августа 2011

Одной из идей было бы использование Ajax для публикации в действии JsonResult, которое отвечает объектом, содержащим загруженный URL.

$.ajax({
    url: "/Controller/Action",
    type: "POST",
    data: { imgData: imgData },
    success: function(receive) {
        // Do whatever
    }
})

Где ваше действие будет выглядеть примерно так:

public JsonResult Action(string imgData)
{
    // Do whatever upload logic you have
    var imagePath = /* your path */

    return Json(new { path = imagePath });
}

Тогда в вашей функции успеха ajax вы сможете получить доступ к пути следующим образом:

var jsPath = receive.path

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