У меня есть несколько jQuery, который загружает частичное представление на страницу. Частичное представление представляет собой форму загрузки для прикрепления изображений.
Вот js / jQuery:
function addAnImageClick() {
// hide this
$("a#addImage").hide();
// show loading gif
$("img.addAnImageLoadingGif").show();
// invoke ajax get
$.get("/FileManager/GetUploadForm",
{ postUrl: "/Announcements/UploadImageToAnnouncement", modelID: <% =Model.ID %>, multipleFiles: false },
function(data) {
// show upload form
$("div#imageUploader").html(data);
$("div#imageUploader").show();
// hide loading gif
$("img.addAnImageLoadingGif").hide();
});
}
Как вы видите, я скрываю ссылку, по которой пользователь щелкает, чтобы запустить эту функцию, затем отображает gif загрузки для обратной связи пользовательского интерфейса, а затем вызывает ajax-вызов для контроллера. Я также передаю некоторые ценности в действие. Как только ответ возвращается, я загружаю содержимое в div с этой строкой: $("div#imageUploader").html(data);
. Div был скрыт с помощью css display:none
, который затем я показываю и заканчиваю, удаляя загрузочный gif из видимости.
Вот действие:
//
// GET: /FileManager/GetUploadForm/?uploadAction=actionName&modelID=1234&multipleFiles=true
public class GetUploadFormDTO
{
public string PostUrl { get; set; }
public int ModelID { get; set; }
public bool MultipleFiles { get; set; }
}
[KsisAuthorize()]
public ActionResult GetUploadForm(string postUrl, string modelID, string multipleFiles)
{
GetUploadFormDTO model =
new GetUploadFormDTO()
{
PostUrl = postUrl,
ModelID = Convert.ToInt32(modelID),
MultipleFiles = Convert.ToBoolean(multipleFiles)
};
return PartialView("UploadFormPartial", model);
}
Надеюсь, это поможет. : D