如何实现在asp.net的WebForms邮政/重定向/获取模式?
-
06-09-2019 - |
题
因此,我明白PRG模式的基础知识。但是,我还没有碰到过的技术用于产生可用任意数据页的“获取”的实例。
例如,我可能要取决于它们的作用,其发起的回发到显示不同的反馈消息给用户。
什么我已经做正在发送的标识符作为查询字符串参数。这工作得很好,但它引入了书签的问题似乎并没有像它会很好地进行缩放。如果我需要发送所有的ViewState的?
不幸的是,我绑的WebForms此刻并没有能够说服我的组织迁移到MVC。
解决方案
如果张贴的领域被重定向坚持之前,你需要重定向后访问这些数据,我会追加对你提到的查询字符串中的数据记录(一个或多个)的标识。你也可以指定请求的状态(显示信息等)。然后GET页面上,你可以读出的数据,做任何它。
我没有看到任何其他方式来解决这个问题,通过GET获得的每一页都将无法访问到前一页的ViewState
等。
使用Server.Transfer
将具有处理POST原始页面上的同样的效果。
您可以用会话变量来存储POST数据,但发臭。
其他提示
我觉得你还是可以使用GET方法的表单元素。 在这种情况下,您将无法使用您的控件的ID以正常的方式。但是你可以使用Request.Params收集得到的视图状态。
更新:对不起,我刚刚又试了一次。并且发现,您可以通过它的ID代码隐藏在访问您的服务器的控制。像:
Response.Write(text1.Text)
见例如:
aspx页面(只有形式元素):
< form id="form1" runat="server" method="get">
< div>
< asp:TextBox ID="text1" runat="server" />
< asp:Button ID="button1" runat="server" OnClick="buttonClick" />
< div>
< form>
注意:强> 我使用的每个之前的空间中“<”,否则上面的代码将不可见。
页(唯一的按钮点击事件)后面的代码:
protected void buttonClick(object sender, EventArgs e)
{
string text = Request.Params["text1"];
Response.Write(text);
}
当你点击按钮的URL看起来像这样:
不隶属于 StackOverflow