我正在尝试扩展来自MattHidinger.com的示例,以将弹出对话框添加到 MVC 站点。
使用他网站上的代码...
<script type="text/javascript">
$.ajaxSetup({ cache: false });
$(document).ready(function () {
$(".openDialog").live("click", function (e) {
e.preventDefault();
$("<div></div>")
.addClass("dialog")
.attr("id", $(this).attr("data-dialog-id"))
.appendTo("body")
.dialog({
title: $(this).attr("data-dialog-title"),
close: function () { $(this).remove() },
modal: true,
width: 700,
height: 350
})
.load(this.href);
});
$(".close").live("click", function (e) {
e.preventDefault();
$(this).closest(".dialog").dialog("close");
});
});
</script>
和一个 Html.ActionLink
@Html.ActionLink("Delete via actionlink", "Delete", "CostModel"
, new { id = item.HighlightReportID }
, new { @class = "openDialog", data_dialog_id = "dialog", data_dialog_title =
string.Format("Delete {0}", item.DisplayIdentifier) })
我可以呈现一个锚标记,单击该标记会打开一个 UI 对话框。
<a class="openDialog" data-dialog-id="dialog" data-dialog-title="Delete report for Nov 12" href="/CostModel/Delete/162">Delete via actionlink</a>
但!
如果我使用相同的识别结构手动将锚标记添加到页面,它会失败。
<a class="openDialog" data_dialog_id="dialog" data_dialog_title="Delete report for Nov 12" href="/CostModel/Delete/162">Delete via manual anchor tag</a>
与手动创建的标签相比,MVC 生成的 Anchor 标签会起作用吗?
警告。显然,我不会手动将标签添加到 MVC 中的页面。我首先尝试使用在锚标记内生成图像的 ImageLink 助手,但它也失败了,所以回到最初的原则,我尝试了手动方法,当它失败时非常困惑!
编辑 1
这是页面中的代码,注意我尝试将 data_dialog_id 设置为相同和不同,同时添加和单独添加,没有区别,只有 ActionLink 会被 JQuery 拾取。
@Html.ActionLink("Delete via actionlink", "Delete", "CostModel"
, new { id = item.HighlightReportID }
, new { @class = "openDialog", data_dialog_id = "dialog1", data_dialog_title = string.Format("Delete {0}", item.DisplayIdentifier) })
<a class="openDialog"
data_dialog_id="dialog2"
data_dialog_title="@string.Format("Delete {0}", item.DisplayIdentifier)"
href="/CostModel/Delete/@item.HighlightReportID">Delete via manual anchor tag</a>
这些是呈现的两个标签
<a class="openDialog" data-dialog-id="dialog1" data-dialog-title="Delete report for Dec 12" href="/CostModel/Delete/212">Delete via actionlink</a>
<a class="openDialog" data_dialog_id="dialog2" data_dialog_title="Delete report for Dec 12" href="/CostModel/Delete/212">Delete via manual anchor tag</a>
就我的眼睛所见,它们是相同的,但 jquery 只会拾取第一个(dialog1)。