在我的MVC项目中,在我的一个观点中,我有一些JQuery会弹出一个对话框,内容在标签内定义
有没有办法可以确保View的内容是一个View / PartialView,它是从我的控制器中填充的:
public ActionResult PopulateDivContent()
{
MyBusinessEntity entity = GetEntity();
return PartialView("SingleRow", MyBusinessEntity);
}
我将如何做到这一点?
答案 0 :(得分:1)
我有一些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();
});
}
正如您所看到的,我隐藏了用户单击以启动此功能的链接,然后显示用于UI反馈的加载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