单击链接时,使用 AJAX 在剑道窗口中加载数据
Loading data in a Kendo Window with AJAX when a link is clicked
我有一个 mvc 剃须刀页面,上面列出了几个使用剃刀 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);
}
From your comments
如何将产品 ID 传递给点击事件。
可以使用新的 data-* 属性来保留任何元素中的值。
@foreach (var product in Model)
{
<h2>@product.Title</h2>
<div>product.Description</div>
<a href="#" data-product-Id="@product.Id" class="lnkViewRatings">View Reviews</a>
}
你的Jquery可以是
$(".lnkViewReviews").click(function (e) {
e.preventDefault();
dialog.refresh({
url: "/Products/GetReviews",
data: { productId: $(this).attr('data-product-Id') } //You can retrieve product Id from the element itself
});
dialog.open().center();
});
相关文章:
- 召回窗口加载事件 - javascript
- AngularJS:触发从子窗口加载视图(OAuth)
- 将函数从点击事件更改为窗口加载
- 我想在窗口加载后只调用一次JavaScript setInterval函数
- 我有一个用于 onclick 的窗口加载函数 如何添加 onblur 事件并合并为一个
- 如何使用窗口加载函数使我所有的 javascript 都外部化
- 窗口加载功能无法停止
- Javascript 在窗口加载时将 onclick 事件添加到单选按钮
- Javascript在停止窗口加载后显示一些内容
- Javascript:选择窗口加载功能
- 在应用中的窗口加载事件 famo.us
- 创建页面的模式窗口加载以用于用户反馈
- 将图像组合在一起并在窗口加载时对图像进行动画处理
- 窗口加载未触发
- 如何从父窗口加载关闭子窗口
- 窗口加载功能不起作用
- 如何在自定义弹出窗口加载中加载 js/css 文件
- jQuery 的窗口加载包装器
- 如何在窗体/窗口加载时使用角度引导程序调用函数以显示第一个选项卡的动态内容
- 窗口加载时未触发警报