问题
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.
回答1:
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');
}
回答2:
I would create a action on a conroller that returns the partial view. Then use Colorbox (via its IFRAME attribute) to load the results of the controller via jQuery.
来源:https://stackoverflow.com/questions/1554542/how-to-open-a-partial-view-by-using-jquery-modal-popup-in-asp-net-mvc