asp.net - 在 ASP.NET web,单独的文章中,如何满足或者绕过视图验证?

  显示原文与译文双语对照的内容
0 0

I`ve在 web forms页面中有一个链接,它打开一个新窗口,并发布到除了页面本身之外的表单。 这是这样做的:

镑:

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>

如你所见,这将覆盖主 <form>的目标,并尝试发布到不同的页面。 整个要点是将/提交到其他页面,同时避免将"mydataid"的数据作为一个数据传递给用户获取参数。

上代码将工作,但由于viewstate验证导致错误。

我可以在这里满足需求,或者绕过viewstate验证,这样我可以以这种方式发布数据?

时间:原作者:2个回答

0 0

听起来你只需要改变提交表单的按钮的 PostBackUrl

的PostToPage2.aspx ( 而不是 postback ) 发布的一个简单示例:

<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>

然后可以检查 PostToPage2.aspx 中的Request,检查它是否为 POST,等等,然后在 Page_Load 中访问 Request 中的Request.Form 集合。

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

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

hth 。

原作者:
...