部分ビューを使用してウィッシュリストをレンダリングする、開発中の Web アプリケーションがあります。この PartialView をメイン ページ内の div 内にレンダリングしたいと思います。ウィッシュリストのコンテンツは、永続化のために HttpContext.Profile オブジェクト内に保持されます。
部分的なビュー コントローラー内には、理想的には一度実行されると、インデックス アクションの更新をトリガーする機能の追加と削除があります。
実行中のアクションで、div 内の部分的なビューをレンダリングできますが、div をリロードするのではなく、ページ全体が結果ページにリダイレクトされます。これを達成する方法がわかりません。
コントローラ:
public ActionResult Index()
{
var wish = WishListForm;
//Perform lookup of any object id's located in the profile.
if (wish.Properties.Any())
{
viewModel.Items = Nav.GetItems(wish.ItemIds).ToList();
}
return PartialView("RequestFormPartial", viewModel);
}
public ActionResult AddItem(int itemId)
{
var wish = WishListForm;
if (!wish.Properties.Contains(itemId))
{
wish.Properties.Add(itemId);
}
WishListForm = wish;
return RedirectToAction("Index");
}
public ActionResult RemoveItem(int itemId)
{
var wish = WishListForm;
if (wish.Properties.Contains(itemId))
{
wish.Properties.Remove(itemId);
}
WishListForm = wish;
return RedirectToAction("Index");
}
public ActionResult RemoveAllItems()
{
var wish = WishListForm;
wish.Properties.RemoveAll(x => true);
WishListForm = wish;
return RedirectToAction("Index");
}
}
Htmlウィッシュリスト
<script>
$('#wishListTest').click(function () {
$.ajax({
type: 'POST',
url: '@Url.Action("Index", "MyData")',
success: function (data) {
$("#wishlist").html(data);
}
});
});
</script>
変更する必要があるのは RedirectToAction だと思いますか? 何か案は?