【发布时间】:2013-12-19 22:01:15
【问题描述】:
背景:
我在网站的所有页面上都使用了一个主 Masterpage,网站中的某些页面会启动 jQuery UI 模态对话框,然后加载其他具有自己特殊 Modal MasterPage 的 web 表单。
目录结构:
/
/templates/Main.master
/templates/Modal.master
/htmlmodals/popup.aspx
/main.aspx
问题: 似乎有两个问题。首先,当我在模态母版页中完成任何导致回发的操作时,(popup.aspx)页面会尝试在调用模态的文件的目录中查找,所以我最终会遇到类似
的错误Description: HTTP 404. The resource you are looking for ...blah blah blah...
Requested URL: /popup.aspx
我刚刚发现的另一个问题是,生成的源代码表单 main.aspx 显示我有两个具有完全相同 ID 的表单字段,即使我将 Modal 指定为不同的。
<form name="aspnetForm" method="post" action="main.aspx" id="aspnetForm">
...
</form>
<div id="modal-holder">
<form name="aspnetForm" method="post" action="popup.aspx" id="aspnetForm">
...
</form>
</div>
查询:
我是否需要在 Modal.master 文件中指定 <html><head></head><body>... 等?我问是因为页面完全按照我想要的方式加载(包括处理后面的代码),回发除外,只需使用以下代码:
Modal.master
<%@ Master Language="VB" AutoEventWireup="false" CodeBehind="modal.master.vb" Inherits="--REMOVED IDENTIFIER--.Web.Site.modal" %>
<form id="modalForm" runat="server">
<div>
<div class="alert-box" id="error-area--modal">
<p></p>
<div class="error-content"></div>
<div class="error-synopsis"></div>
<div class="validity-summary-container">
<ul></ul>
</div>
</div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
<script>
initialiseEvents();
</script>
</form>
使用以下 jQuery 代码启动一个典型的模态
$('#<%= btnPopup.ClientID %>').click(function(e){
e.preventDefault();
dHeight = ($(window).height()) * 0.95;
baseDialog.dialog('option',{title:'Edit', width:'95%', height:dHeight, open:function (e, ui) {$('#modal-holder').load('/htmlmodals/popup.aspx');}}).dialog('open');
});
更新:将相关的 html/head/body 标签添加到模态母版不修复回发/重复 ID 问题
更新 2 :在回发的 popup.aspx 部分周围添加了一个更新面板,似乎也没有工作,仍在尝试对 /popup.aspx 进行正常回发
【问题讨论】:
标签: asp.net vb.net jquery-ui master-pages jquery-ui-dialog