2009-12-15 5 views
1

JQuery UI 대화 상자가 있습니다. 이 앱을 사용하면 사람들이 목록을 만들 수 있으며이 대화 상자에서 목록 이름을 지정할 수 있습니다. 여기에 있습니다 :JQuery UI 대화 상자 및 Ajax.BeginForm

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Klera.Models.CList>" %> 

    <%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %> 

    <% using (Ajax.BeginForm("CreateList", new AjaxOptions {UpdateTargetId="mylists"})) %> 

      <p> 
       <label for="listname">List Name:</label> 
       <%= Html.TextBox("listname") %> 
       <%= Html.ValidationMessage("listname", "*") %> 
      </p> 

      <%=Ajax.ActionLink("Create", "CreateList", new AjaxOptions{}) %> 



    <% } %> 

일반 HTML 폼을 만들고 JQuery에서 메서드를 호출 해 보았습니다. 잘못된 일을하고 있는지 잘 모르겠지만 컨트롤러로 다시 전송 된 개체는 null입니다. 나는 Jquery가 직렬화되지 않고 post action에 name = "some form field"등과 같은 속성을 지정해야하기 때문에 이것을 가정하고있다. 이것은 올바른 가정입니까?

어떤 경우에도 JQuery에서 게시 작업을 시작하는 데 어려움이 있기 때문에 Ajax.ActionLink 및 Ajax.BeginForm을 사용해 보았습니다.

대화 상자가 나타나면 아니오를 클릭하십시오. 이것이 타이밍 문제 일까 궁금한가요? $에 (문서) .ready() 나는 부분보기로드하기 전에 대화 상자를 초기화하고 있습니다 : 있는지 이유를 정확하게

$("#newlist").click(function() { 
       $("#listdiv").load("Record/CreateList"); 
       $("#listdiv").dialog("open"); 

      }); 

하지 : 다음 클릭 이벤트에 대한 이벤트 처리기를 추가

$("#listdiv").dialog({ 
       autoOpen: false, 
       buttons: { 
        Create: function() { 
        }, 
        Cancel: function() { 
         $(this).dialog('close'); 
        } 
       } 

      }); 

을 이 경우 부분보기가 표시되지 않습니다.

+0

방화범은 무엇을 말하는가 업데이트 한 후, 대화 상자를 캐시? – czarchaic

답변

1

는 첫째, HTML

var dialog=$('#newlist').dialog({ 
    //dialog options 
}); 

$.ajax({ 
    url: 'Record/CreateList', 
    success: function(html){ 
    console.log(html);//look good? 
    dialog.html(html).dialog('open'); 
    } 
});