使用类型为Request.Form
的{1} NameValueCollection
和(2)<ControlID>.Text
(或SelectedValue
或其他方式检索在回发上发送的数据之间是否存在差异)?请考虑以下代码隐藏文件:
protected void Page_Load(...) {
if (IsPostBack) {
Validate();
if (IsValid) {
// APPROACH (1): Retrieve POST data from the Request.Form object:
NameValueCollection post = Request.Form;
string username = post["username"];
// logic continues...
}
}
}
VS。以下内容:
protected void Page_Load(...) {
if (IsPostBack) {
Validate();
if (IsValid) {
// APPROACH (2): Retrieve Control text directly:
string username = UsernameTextBox.Text;
// logic continues...
}
}
}
这两种方法有什么区别吗?任何理由支持一个人(在某些情况下可能)?谢谢
答案 0 :(得分:1)
它们基本相同。我们通常使用第二种方法。
后者是强类型,如果控件不存在,则抛出编译时错误。
只有当我使用 NameValueCollection 时,才能检索在客户端<动态添加动态 的控件< strong> 使用Javascript ,表单将发布回服务器。