ASP.NET WebForm中如何将用户控件表单值转换为NameValueCollection?
你只需要手动实例化NameValueCollection对象,将控件值按键值对格式存入即可,要保证存入的键名和原有自动提交逻辑中Request.Form的键名完全一致,才能匹配原有回显逻辑。
首先确认项目已引入对应命名空间:
using System.Collections.Specialized;
完整实现代码如下:
// 提取控件实例,简化重复查找逻辑 var firstNameTextBox = (TextBox)Page.Master.FindControl("ContentPlaceHolder1").FindControl("FirstName"); var lastNameTextBox = (TextBox)Page.Master.FindControl("ContentPlaceHolder1").FindControl("LastName"); // 你的原有手动赋值逻辑 firstNameTextBox.Text = "TestFirstName"; lastNameTextBox.Text = "TestLastName"; // 构造和Request.Form格式一致的NameValueCollection NameValueCollection student1Data = new NameValueCollection(); // 键名需和原有自动提交时Request.Form的键完全匹配,此处默认和控件ID一致 student1Data.Add("FirstName", firstNameTextBox.Text); student1Data.Add("LastName", lastNameTextBox.Text); // 存入Session,对齐原有逻辑 Session["Student1"] = student1Data;
如果回显失效,可在原有自动提交逻辑处打断点,查看HttpContext.Current.Request.Form中存储FirstName、LastName对应的实际键名,将上述代码中的键替换为实际值即可。
内容的提问来源于stack exchange,提问作者Biraj Dahal
相关产品推荐
相关产品推荐

