2009-12-15 147 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調用方法。我不知道如果我做錯了什麼,但發回給控制器的對象是空的。我假設這是因爲Jquery沒有序列化,並且我必須在後置操作中指定諸如name =「some form field」等屬性。這是一個正確的假設嗎?

無論如何,由於從JQuery開始發佈操作時遇到困難,我嘗試使用Ajax.ActionLink和Ajax.BeginForm。

當我點擊對話框出現時,現在沒有任何東西出現。我想知道這是否是一個時間問題?在$(文件)。就緒(),我加載的局部視圖之前初始化一個對話框:

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

      }); 

我再添加一個事件處理程序click事件:

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

      }); 

不知道確切原因在這種情況下不會出現局部視圖。

+0

什麼是螢火蟲說什麼? – czarchaic 2009-12-15 23:59:08

回答

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'); 
    } 
});