MVC:如何在div中显示视图

时间:2009-10-13 05:36:36

标签: c# .net asp.net-mvc

在我的MVC项目中,在我的一个观点中,我有一些JQuery会弹出一个对话框,内容在标签内定义

有没有办法可以确保View的内容是一个View / PartialView,它是从我的控制器中填充的:

    public ActionResult PopulateDivContent()
    {
        MyBusinessEntity entity = GetEntity();
        return PartialView("SingleRow", MyBusinessEntity);
    }

我将如何做到这一点?

1 个答案:

答案 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