JQuery UI对话框和Ajax.BeginForm

问题描述:

我有一个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

首先,缓存对话框,然后更新它的HTML

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

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