Я пытаюсь изменить данные в PartialView в моем представлении через изменение выпадающего списка в форме. Теперь, если я нажму кнопку «Отправить», моя форма отправит сообщение без проблем, и форма коллекции будет доступна, однако, когда я пытаюсь отправить с помощью jquery событие изменения, форма отправляется нормально, но нет коллекции формы.
Есть идеи?
Это код подачи
$(function() {
$('#ddlSelection').change(function() {
var form = $("#myForm");
var action = form.attr("action");
var serializedForm = form.serialize();
$.post(action, serializedForm, function() { alert("Finished!") });
});
});
форма как таковая
<% using (Ajax.BeginForm("myForm", new AjaxOptions
{
UpdateTargetId = "divItemsList",
OnComplete = "ClearForm"
}))
{%>
<%=Html.Label("ddlFilter", "Parent Filter")%>
<%=Html.DropDownList("ddlFilter", "Please Select ...")%><br />
<fieldset>
<legend>Filter Option Details</legend>
<p>
<label for="Value">Value:</label>
<%= Html.TextBox("Value") %>
<%= Html.ValidationMessage("Value", "*") %>
</p>
</fieldset>
<%}%>
РЕШЕНИЕ
Хорошо, следовало бы уделить больше внимания, тег Ajax.Beginform
не дает форме идентификатор или имя, я предполагаю, что они считают это ненужным, поэтому решение заключается в добавлении атрибутов htmlattributes вручную. как так ..
<% using (Ajax.BeginForm("TheAction", null, new AjaxOptions
{
UpdateTargetId = "divFilterItemsList",
OnComplete = "ClearForm"
}, new { ID = "myForm", Name = "myForm" }))
{%>