ここで他のいくつかの投稿を読んだ後、リンクのクリックで部分ビューを読み込もうとして、ここまで来ました (この概念実証段階を過ぎると、テキスト リンクは実際には画像に変わる可能性があります)。問題は、リンクをクリックしているビュー内に div を設定するのではなく、クリックすると部分ビューに移動することです。
レイアウト:
<script src="@Url.Content("~/scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
景色:
@Ajax.ActionLink("Item 1 Ajax", "Details", "Portfolio", new { name = "test" }, new AjaxOptions
{
HttpMethod = "Post",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "row1Content",
OnComplete = "portfolioItemLoaded"
})
<div id="row1content"></div>
<script type="text/javascript">
function portfolioItemLoaded() {
alert("Done");
}
</script>
コントローラー:
public class PortfolioController : Controller
{
public ActionResult Details(string name)
{
return PartialView(name);
}
}
部分 (明らかに test.cshtml という名前):
<p>Item 1 test</p>
明らかな何かを見逃しましたか?MVC で AJAX を使用しようとしたのはこれが初めてなので、学校の男の子のエラーが 1 つまたは 2 つある可能性があります。
異なる部分ビューを呼び出すいくつかの異なる Ajax アクション リンクを用意することを計画しているため、コントローラーに名前を渡しています。