【发布时间】:2016-02-21 06:14:22
【问题描述】:
我有一个 mvc razor 页面,其中使用 razor foreach 循环列出了几个产品项目:
@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);
}
【问题讨论】:
-
but I am having problems。问题是什么 ?错误信息? -
没有具体的错误消息,但没有任何工作正常。看起来我在正确的轨道上吗?我正在尝试弄清楚如何使用模板在窗口中列出返回的数据,以及如何将产品 ID 传递给点击事件。
-
你的问题只是传递了procuctId吗?我认为您的其余代码看起来不错。
标签: javascript jquery asp.net-mvc kendo-ui kendo-window