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");
});
不知道确切原因在这种情况下不会出现局部视图。
答
首先,缓存对话框,然后更新它的HTML
var dialog=$('#newlist').dialog({
//dialog options
});
$.ajax({
url: 'Record/CreateList',
success: function(html){
console.log(html);//look good?
dialog.html(html).dialog('open');
}
});
什么是萤火虫说什么? – czarchaic 2009-12-15 23:59:08