2012-04-12 4 views
2

Я представляю частичный вид в диалоговом окне интерфейса JQuery. Пример, взятый из Loading a partial view in jquery.dialog. Кнопка закрытия не работает, когда вы передаете частичный вид модели ... есть ли у кого-нибудь решение закрыть диалоговое окно? (он отлично работает, когда модель не передается на частичный вид). Кроме того, может ли кто-нибудь объяснить, почему он не работает при передаче модели представления?Как закрыть диалоговое окно JQuery UI при визуализации частичного представления с помощью модели

Вид:

<script type="text/javascript"> 
    $(function() {  
     $('#dialog').dialog({    
      width: 400,    
      resizable: false, 
      title: 'hi there', 
      modal: true, 
      open: function(event, ui) { 
       //Load the CreateAlbumPartial action which will return 
       // the partial view _CreateAlbumPartial 
       $(this).load("@Url.Action("CreateAlbumPartial")"); 
      }, 
      buttons: { 
       "Close": function() { 
        $(this).dialog("close"); 
       } 
      } 
     });     
    }); 
</script> 

<div id="dialog" title="Create Album" style="overflow: hidden;"></div> 

Действие:

public ActionResult CreateAlbumPartial() 
     {     
     var applications = new List<string>{"bob", "john", "andrew"};   
     var selectList = applications.Select(x => new SelectListItem{Text = x,Value = x}).ToList(); 
     var model = new TestModel{Applications = selectList}; 
     return View("_CreateAlbumPartial", model); 
     } 

ViewModel:

public class TestModel 
    {  
     public int SelectedApplicationId; 
     public IEnumerable<SelectListItem> Applications; 
    } 

Частичный вид:

@model MvcApplication1.Models.TestModel 

<div> 

@Html.DropDownListFor(
     x => x.SelectedApplicationId, 
     new SelectList(Model.Applications, "Value", "Text"), 
     "-- Select Application --", 
      new 
      { 
       id = "ApplicationsDropdownList", 
       data_url = Url.Action("ViewRolesForApplication", "Index") 
      } 
    ) 
</div> 
+0

woggles, проверить это сообщение: http://ricardocovo.com/2011/04/03/asp-mvc3-editing-records-with-jqueryui-dialogs-and -ajaxforms /, он точно объясняет, что вы ищете. --Оригинально на aspx, но есть и бритвенная версия. – covo

+0

@covo great post ... Мне нужно будет внести немало изменений, чтобы получить работу с моим текущим кодом. Я дам вам знать, как это работает. – woggles

+0

@covo Ive следил за вашим сообщением в блоге, и он хорошо работает для простого сценария редактирования. Однако в моем случае в моем диалоговом окне должен быть выпадающий список, который затем отображает другое частичное представление с помощью списка флажков, когда что-то выбрано. В этом случае кнопка закрытия не работает снова. Возможно, у вас есть элегантное решение для более сложной формы, которая может содержать частичные виды? – woggles

ответ

1

первой нагрузки содержание затем создать диалоговые

$(function() {  
     $.ajax({ 
      url: "@Url.Action("CreateAlbumPartial")", 
      success:function(data){ 
        $('#dialog').html(data).dialog({    
         width: 400,    
         resizable: false, 
         title: 'hi there', 
         modal: true, 
         buttons: { 
          "Close": function() { 
          $(this).dialog("close"); 
          } 
         } 
        }); 
      } 
     }); 

    }); 
Смежные вопросы