我在 iframe 中有一个 asp.net 页面,其中所有链接都指向 _blank
<base target="_blank" />
但是我希望它上面的表单在单击一个按钮时提交给_self(即页面所在的iframe)。表单是一个<asp:Panel>带有<asp:Button>提交它的控件。
我在哪里可以设置此表单的目标?由于文件中没有<form>标签或<input>标签(ASP.NET 在呈现页面时生成它们),我不知道如何更改目标以覆盖我的<base>标签。
我不确定我是否理解正确,但您可以在表单标签中设置目标,如下所示:
<form method=post action="Page.aspx" target="_self">
我刚刚在mokeefe的 asp.net 论坛上找到了这篇文章,它通过 javascript 更改了目标。
我只是把它放在我的页面上并尝试了它。我必须进行这些修改:
1.我只使用asp标签,所以我<asp:Button>没有<input type="button">,我的onclick必须是我在提交时调用的服务器端方法。因此,我将这个新的 javascript 放在OnClientClick中:
<asp:Button ID="cmdEmailSearch" runat="server" Text="Search"
OnClick="cmdEmailSearch_Click"
OnClientClick="javascript:pageSubmit()"/>
2.我删除了 myForm.submit(),因为 ASP.NET 呈现页面,将WebForm_DoPostBackWithOptions() javascript 放在按钮的onclick中,然后将我的pageSubmit()
<script type="text/javascript">
function pageSubmit(){
// where form1 is the Parent Form Id
var myForm = document.getElementById('form1');
myForm.target = '_self';
}// end function
</script>