我正在尝试在jQuery对话框中加载另一个页面。我已经看了很多文章(包括下面的文章)。似乎接受的技术是:
$(function () {
$(document).ready(function () {
var d1= $('#dialog-import').dialog({
resizeable: false,
height: 600,
modal: true,
autoOpen: false,
buttons: {
'My button1': function () {
$(this).dialog('close');
},
Cancel: function () {
$(this).dialog('close');
}
}
});
d1.load('/DataSets/ImportSpreadsheet/91D55CAC-6C2C-46EE-8730-0DBFE26D1D92').dialog('open');
});
});
打开对话框,包括完整内容和我的两个对话框按钮,但是,两个对话框按钮不起作用(我无法点击它们)。
代码的其他替代方案,例如:
$('#dialog-import').load('/DataSets/ImportSpreadsheet/' + a, function () {
$('#dialog-import').dialog('open');
});
在Google Developer Console中导致此错误:
Uncaught TypeError: Object [object Object] has no method 'dialog'
我一定是想念一些愚蠢的东西。但是,我一直在寻找它,没有任何运气。
感谢。
这就是我想要做的事,尝试了他们的建议,没有运气:
how to load a page with jquery ui dialog
答案 0 :(得分:2)
原来,问题是我试图加载一个包含header,body,html元素的完整页面。 jQuery不喜欢那样。
我找到了两种可能的解决方案:
使用C#MVC局部视图。确保部分视图不包含header,html等元素。使用它原始问题中的代码可以正常工作。
使用iFrame元素,并加载您要查找的更改src属性的页面,如下面的代码所示。
$('#selector')。click(function(){
$( '#对话框导入')ATTR( 'src' 中, '/数据集/ ImportSpreadsheet / ...')。
$( '#对话框导入')对话框( '开放');
});
尽管如此,我很困惑的是,很多人都说他们不必担心标题/正文标记,就像这个帖子隐含地说:ASP.NET Mvc jquery ui dialog as view or partialview?
我将继续研究,但有同样问题的人可能会觉得这很有用。