コード:
<% 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" })%>
投稿が発生すると、既存のページにとどまって div の内容を更新するのではなく、新しいページに移動します。
ありがとう。