Код:Ajax.BeginForm UpdateTargetId не работает с DropDownList
<% using (Ajax.BeginForm("GetResourcesByProject", "CreateRequest", new AjaxOptions { UpdateTargetId = "ResourceListDiv"}))
{
Response.Write(Html.DropDownList("SelectProject", Model.ProjectList, "Select Project", new { onchange = "this.form.submit();" }));
} %>
Когда я запускаю страницу я получаю правильное действие контроллера, чтобы вызвать с правильными данными в коллекции форм:
public ActionResult GetResourcesByProject(FormCollection formCollection)
{
var resourceModels = (from project in POTSModel.ProjectList
where project.Id == Convert.ToInt32(formCollection["SelectProject"])
select project).First().Resources;
return PartialView("ResourceList", resourceModels);
}
Он отлично работает от Ajax.ActionLink так:
<%= Ajax.ActionLink("Select", "GetResourcesByProject", "CreateRequest", new { projectId = item.Id }, new AjaxOptions { UpdateTargetId = "ResourceListDiv" })%>
Когда пост происходит, я переходите на новую страницу, а не о f оставаясь на существующей странице и обновляя содержимое div.
Спасибо.
Скрытое кнопка отправки отлично работает: \t \t \t <% с помощью (Ajax.BeginForm ("GetResourcesByProject", "CreateRequest", новые AjaxOptions {UpdateTargetId = "ResourceListDiv"})) \t \t \t \t { \t \t \t \t \t Response.Write (Html.DropDownList («SelectProject», Model.ProjectList, «Выбрать проект», новый {onchange = "document.getElementById ('projectSubmit'). Click();"})); \t \t \t \t \t%> \t \t \t \t \t <входной тип = "отправить" имя = стиль "projectSubmit" = "видимость: скрытый" /> \t \t \t \t \t <% \t \t \t \t}% > Немного уродливый и неуклюжий, но он работает. Bummer, что нормальная form.submit() не попадает в форму ajax. Спасибо за помощь. – Tyler