在PostBack: Request上检索数据.表单与文本框:文本



在使用(1)类型为NameValueCollectionRequest.Form和(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...
        }
    }
}

这两种方法有什么区别吗?有什么理由支持其中一个而不是另一个(也许在某些情况下)?谢谢你

基本相同。我们通常使用第二种方法。

后者是强类型,如果控件不存在,则会抛出编译时错误。

唯一一次我使用NameValueCollection是检索一个控件,它是添加动态在客户端使用Javascript,表单被张贴回服务器。

最新更新