在 ASP.NET MVC 中,我试图通过调用驻留在外部 js 文件中的函数来显示 jqueryUI 模式对话框。这样做的原因是我想在某个地方编写一个 js 方法,然后用一些参数调用它,而不是在每个页面上复制粘贴它。
这是我的 CustomFunctions.js 文件:
function CustomFunctions() { };
CustomFunctions.prototype.loadModalDialog = function (dialogDivID, callerElementDivID, dialogSize, actionControllerName, container)
{
var dialogElement = $('#' + dialogDivID);
var callerElement = $('#' + callerElementDivID);
dialogElement.dialog
(
{
autoOpen: false,
show: "slide",
width: dialogSize,
resizable: false,
modal: true
}
);
callerElement.click(function()
{
dialogElement.load("@Url.Action(" + actionControllerName +")", function()
{
$(container).dialog('open');
});
return false;
})
}
现在,在我的 List.cshtml 视图中,我编写了以下内容:
@Html.ActionLink(
"click me",
"List",
new {string.Empty},
new { onclick = "Javascript:showModal();" }
);
@Scripts.Render("~/bundles/custom");
<script>
function showModal()
{
var custom = new CustomFunctions();
custom.loadModalDialog("my-dialog", "show-modal", 400, "List", this);
}
</script>
问题是模式对话框没有弹出。在客户端调试时,它进入 loadModalDialog,它正确地找到了所有变量,它遍历了所有 js 代码,没有抛出错误(这让我感到困惑)但没有显示对话框。
我错过了什么吗?谢谢,