2014-10-23 6 views
0

Я использую диалог jQuery для создания новых клиентов. В первый раз, когда я открываю диалог, он вызывает метод Controller Action для создания новой модели Customer. Последующие загрузки диалогового окна НЕ ВЫЗЫВАЮТ метод Action, который не является тем, что я хочу.Загрузка частичного представления в диалоговом окне jQuery MULTIPLE раз

Либо мне нужно правильно расположить диалог по закрытию, либо заставить его воссоздать при загрузке. Что бы я ни старался, это не сработает.

<script type="text/javascript"> 
    $(function() { 
     $('#dialog').dialog({ 
      autoOpen: false, 
      width: 400, 
      resizable: false, 
      title: 'New Customer', 
      modal: true, 
      open: function(event, ui) { 
       $(this).load("@Url.Action("CreateCustomerPartial")"); 
      }, 
      buttons: { 
       "Close": function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 

     $('#my-button').click(function() { 
      $('#dialog').dialog('open'); 
     }); 
    }); 
</script> 
<div id="dialog" title="Create Customer" style="overflow: hidden;"> 
+0

Что '$ (это) .load ("@ Url.Action (" CreateCustomerPartial ")");' выглядеть обслуживаемого странице? –

+0

Определяет путь URL-адреса для метода действия (MVC) - $ (this) .load ("/ MyApplication/MyController/MyAction"); – pfeds

+1

С точки зрения клиента код выглядит нормально. Попробуйте добавить «полный» обратный вызов, чтобы проверить, как и как реагирует сервер - см. «Отображать уведомление, если запрос Ajax встречает ошибку» в документации для [.load()] (http://api.jquery.com/нагрузки /). –

ответ

0

Fixed - это была проблема с IE кэширования AJAX запрос, ничего общего с JQuery Диалог.

Отключение кэширования Ajax сделал трюк:

$.ajaxSetup({ cache: false });

+1

'$ .ajaxSetup ({cache: false})' немного резкий, поскольку это повлияет на любые другие запросы ajax в другом месте вашего кода, а не только на этот. Я бы рекомендовал использовать низкоуровневый '$ .ajax()', который позволяет вам указать «cache: false» в качестве опции. Вам придется управлять вводом ответа в '$ (this)' самостоятельно, но это не сложно. –

+0

Хороший совет. Спасибо за вашу помощь. – pfeds