jqueryasp.net-mvcjqmodal

How to open a partial view by using jquery modal popup in asp.net MVC?


I have a partial view which I want to open by using JQuery Modal Popup. There is no problem while opening the view for a new record but I want to pass data to this partial view for edit. What is your best way to implement this?

Thanks in advance.


Solution

  • I have this working well in my current project.

    A partial view uses the Inherits control markup just like a full view does to strongly type the Model object to a datatype.

    Here is a very simple example of a partial view that is returned via a ajax call and put inside a div. The purpose of this partialview is to display a text message that is passed through to it.

    LiteralMessage.ascx

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
    <!-- LiteralMessage.ascx start -->
    <%= Model %>
    <!-- LiteralMessage.ascx end -->
    

    Controller Method

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult ReturnId(int id)
    {
        return PartialView("LiteralMessage", string.Format("Hello world! Id: {0}", id));
    }
    

    Note that in the partial page view can be any complex object.

    I hope this helps!

    EDIT: and because this is listed as jQuery as well, use this as your ajax's success event. (This is assuming your dialog has a content DIV with an Id of MyDialogMessage inside a dialog DIV with an Id of MyDialog)

    // executes when $.post is complete
    function doSuccess(result)
    {
        $('div#MyDialog div#MyDialogMessage').html(result);
        //show dialog
        $('div#MyDialog').dialog('open');
    }