使用Razor操纵动态javascript超链接
asp.net mvc - Manipute with Razor dynamic javascript hyperlinks
#refrigeratorDelete是一个超链接(a-标签),我可以有多个冰箱。根据冰箱的数量,我必须生成/操作超链接id并将其与唯一的冰箱id合并。但是变量i在[]里面是未知的。
我怎样才能解决这个问题?
$(function () {
for (var i = 0; i < @(Model.Refrigerators.Count()); i++) {
$('#refrigeratorDelete@(Model.Refrigerators.ToList()[i]).on('click', function () {
// do stuff on single refrigerator
});
}
});
更新 @foreach (var refrigerator in Model.Refrigerators)
{
<li>
<a id="refrigeratorDelete(@refrigerator.RefrigeratorId)" href="#">delete</a>
</li>
}
更新2
$('#refrigeratorDelete@(Model.RefrigeratorId)').on('click', function () {
var title = 'title';
var warningMessage = 'message';
ShowYesNoWarningDialog(title, warningMessage, function () {
// When OK/YES button is clicked call the server side action:
document.location.href = '@(MVC.Devices.Refrigerator.Delete(Model.RefrigeratorId).Result.ToHRefUrl())';
});
});
说明:当有人点击删除链接时,一个带有Yes/No按钮的删除对话框打开。如果单击"否",则关闭对话框。如果单击是,也会关闭,但是ShowYesNoWarningDialog现在执行document.location.href =…发送到服务器的代码。在MVC内部…删除操作我无法传递客户端id,因为上下文未知。
Delete操作必须是非ajax调用,因为客户需要它!
在视图中为每个链接指定一个类名,并将Refrigerator
的ID属性添加为data-
属性
@foreach (var refrigerator in Model.Refrigerators)
{
<li>
<a href="#" class="delete" data-id="@refrigerator.RefrigeratorId">delete</a>
</li>
}
然后在脚本
中var url = '@Url.Action("Delete", "controllerName")';
$('.delete').click(function() {
var id = $(this).data('id'); // get the ID of the refrigerator
var li = $(this).closest('li'); // in case you want to delete the li element
$.post(url, { id: id }, function(response) {
// if successful, use li.remove(); to remove the element
});
});
上面的脚本假设您有一个类似于
的方法[HttpPost]
public ActionResult Delete(int ID)
{
// delete the refrigerator based on its ID
return Json(true); // indicate success?
}
您需要为删除按钮添加一个类:
@foreach (var refrigerator in Model.Refrigerators)
{
<li>
<a id="refrigeratorDelete(@refrigerator.RefrigeratorId)" class="my-delete-btn" href="#">delete</a>
</li>
}
当你像这样附加onclick事件时
$(function () {
$('.my-delete-btn').on('click', function () {
var currentId = this.id;
// do stuff on single refrigerator
});
});
相关文章:
- 使用JavaScript从超链接加载时的默认下拉值
- 用Javascript按钮替换Javascript超链接
- 点击超链接即可获得搜索引擎和javascript代码
- 如何在我的javascript生成列表中的
- 部分中放置更多超链接
- 超链接单击以加载新页面并执行JavaScript
- 将 Javascript 数组中的文本转换为超链接
- 在JavaScript / jQuery中用活动超链接替换粘贴的链接
- 正在将javascript值附加到gridview超链接.为什么我的代码没有任何想法'不起作用
- 从javascript onClick超链接获取内容
- VBA IE单击/显示没有id或标记而不是超链接的javascript
- javascript拆分URL超链接
- “data-”属性作为超链接的一部分.HTML 到 JavaScript
- Javascript 在单击超链接时运行操作
- 如何在数组中添加超链接(Javascript)
- 使用 JavaScript 引用按钮的超链接
- 有没有一种简单的方法可以在节点上双击 vis.js 创建超链接/javascript-action
- Javascript 正则表达式替换为超链接
- Javascript 超链接不适用于 jQuery append
- 如何在禁用js的情况下处理javascript超链接
- 使用Razor操纵动态javascript超链接