У меня есть диалоговое окно JQuery UI. Приложение позволяет людям создавать списки, и этот диалог позволяет им указывать имя списка. Вот оно:
<%@ 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 = "некоторое поле формы" и т.д. Это правильное предположение?
В любом случае, учитывая трудности с запуском пост-действия из JQuery, я пытался использовать Ajax.ActionLink и Ajax.BeginForm.
Когда я нажимаю, чтобы появилось диалоговое окно, сейчас ничего не появляется. Мне интересно, если это проблема времени? В $ (document) .ready () я инициализирую диалог перед загрузкой частичного представления:
$("#listdiv").dialog({
autoOpen: false,
buttons: {
Create: function() {
},
Cancel: function() {
$(this).dialog('close');
}
}
});
Затем я добавляю обработчик события для события щелчка:
$("#newlist").click(function() {
$("#listdiv").load("Record/CreateList");
$("#listdiv").dialog("open");
});
Не знаю точно, почему частичное представление не отображается в этом случае.