[英]What is the best practice in ASP.NET for persisting query string parameters in postbacks
想知道在 ASP.NET web 应用程序中是否存在将查询字符串变量持久化到回发的最佳实践。 如我所见,您可以:
这个比那个好吗? 还有比这三种更好的方法吗?
使用#1 - 即使有人在浏览器中修改 URL 然后单击按钮以触发回发,回发中的查询字符串仍将具有原始 ID,因为 URL 存储在标签的 action 属性中
使用#3 - 可以通过 javascript 或 jQuery 在页面上更改值 - 所以我怀疑这不是最佳解决方案,除非您的场景特别要求能够更改前端页面上的值
例如,假设页面使用查询字符串中的 ID 从数据库加载一些数据,然后希望在用户单击按钮时使用该 ID 将其保存回数据库(回发)
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// #1 - get it from the query string
string ID_1 = Request.QueryString["id"];
// #2 - save it to the ViewState
ViewState["ID_2"] = Request.QueryString["id"];
// #3 - save it to a input type=hidden or something similar
txtSomeHiddenInput.Value = Request.QueryString["id"];
// ... look up data in a database using the ID
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
// #1 above
string sID1_Postback = Request.QueryString["id"];
// #2 above
string sID2_Postback = (string)ViewState["ID_2"];
// #3 above
string sID3_Postback = txtSomeHiddenInput.Value;
// ... save data in database using the ID
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.