私はMVC4とRazorエンジンを初めて使用するので、これはばかげた質問かもしれません。
私が達成しようとしているのは、ドロップダウンリストとボタンのあるページがあることです。ボタンをクリックすると、コントローラーが呼び出され、選択した値が渡されます。コントローラは部分的なビューを返し、ページの下部のみを更新する必要があります。
ただし、ページ全体が部分ビューhtmlのみに置き換えられていることがわかりました。つまり。結果のリストが表示されますが、プロジェクトのドロップダウンリストと送信ボタンが失われます。jqueryと目立たないスクリプト(MVC 4では必要ないと思います)への参照を含めようとしましたが、ページはまったく変更されません(つまり、ドロップダウンリストとボタンはそこにとどまり、結果は表示されません)。
私の見解の一部:
@using (Ajax.BeginForm("GetProjectStories", "MyController", new AjaxOptions{ UpdateTargetId = "projectUserStories"}))
{
<fieldset>
<legend>Select Project</legend>
<div>
@Html.DropDownList("ProjectReference", (IEnumerable<SelectListItem>)Model.ProjectList)
</div>
<p>
<input name="GetStoriesButton" type="submit" value="Get Stories" />
</p>
</fieldset>
}
@if (Model != null && Model.UserStories != null)
{
<div id="projectUserStories">
@{Html.RenderPartial("_UserStoryList", Model);}
</div>
}
私のコントローラー:
public ActionResult GetProjectStories(ProjectViewModel model)
{
var stories = MyService.GetProjectUserStories(model.ProjectReference).Results;
model.UserStories = stories;
return PartialView("_UserStoryList", model);
}
私の部分ビューコンテンツには、htmlテーブルとモデルへの参照が含まれています。