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コードを調べ、エラーをスローしません(これは私を困惑させます)が、ダイアログを表示しません。
私は何かが足りないのですか?ありがとう、