0

我在 Webforms 页面中有一个链接,该链接在新窗口中打开,并发布到页面本身以外的表单。这样做是这样的:

JS:

var submitFunc = function(){
    document.forms[0].action = 'http://urlToPostTo/somePage.aspx';  
    document.forms[0].target = '_blank'; 
    document.forms[0].submit();
}

链接:

<input type="hidden" id="myDataId" value="12345" />     
<a href="javascript:submitFunc();">Search</a>

如您所见,这会覆盖 main 的目标<form>,并尝试发布到不同的页面。重点是这应该发布/提交到不同的页面,同时避免将“myDataId”的数据作为Get参数传递。

上面的代码可以工作,但由于视图状态验证而导致错误。

问题:我有什么方法可以满足这里的要求,或者以某种方式绕过视图状态验证,以便我可以以这种方式发布我的数据?

4

1 回答 1

1

听起来您只需要更改PostBackUrl提交表单的按钮。

发布到PostToPage2.aspx(而不是回发)的简单示例PostToPage1.aspx :

<form id="form1" runat="server">
<div>
    <asp:TextBox ID="text1" runat="server" /><br />
    <asp:TextBox ID="text2" runat="server" />
    <asp:Button ID="btn1" runat="server" PostBackUrl="~/PostToPage2.aspx" />
</div>
</form>

然后,您可以检查RequestinPostToPage2.aspx以检查它是否是 POST 等,然后访问in中的Request.Form集合。RequestPage_Load

PostToPage2.aspx的过度简化示例(添加适当的验证):

if (!Page.IsPostBack && Request.RequestType == "POST")
    {
        if (Request.Form != null && Request.Form.Keys.Count > 0)
        {
           .....

嗯...

于 2012-10-02T13:26:21.227 回答