Razor foreachループを使用して、いくつかの製品アイテムがリストされているmvc razorページがあります。
@foreach (var product in Model)
{
<h2>@product.Title</h2>
<div>product.Description</div>
<a href="#" class="lnkViewRatings">View Reviews</a>
}
私の目標: css クラス 'lnkViewReviews' を含むリンクをクリックすると、剣道ウィンドウが開き、ajax 要求を使用してその製品のすべてのレビューのリストが表示されます。リクエストのタイプは GET で、リンクがクリックされた製品に応じてデータ パラメータは productId になります。
これがまさに私が望むことです(それを行うためのより良い方法があれば教えてください):
- ユーザーは、リストされた製品のいずれかの [レビューの表示] リンクをクリックします。
- ダイアログ ウィンドウが開き、指定できるテンプレートのような製品レビューのリストが表示されます。
以下は剣道のドキュメントに基づく私の試みですが、問題があります。これを達成するための良い方法を教えてください。
HTML
<div id="dialog">
<p>This is static text in my dialog window</p>
</div>
JavaScript
$("#dialog").kendoWindow({
visible: false
});
var dialog = $("#dialog").data("kendoWindow");
$(".lnkViewReviews").click(function (e) {
e.preventDefault();
dialog.refresh({
url: "/Products/GetReviews",
data: { productId: $(this).attr('data-product-Id') },
});
dialog.open().center();
});
asp.net MVC コントローラー アクション メソッド:
public IActionResult GetReviews(int productId)
{
var prodReviews = _repository.GetProductReviews(productId);
return Json(prodReviews);
}