如何在.CS后台代码中调用.ASPX文件内的TextBox控件ID
核心问题有两个:
CreateDefualtUser是static静态方法,定义在ASPX页面对应的类中时,静态方法属于类本身,而ID为UserNameTextBox的控件是页面类的实例成员,静态方法没有访问实例成员的上下文,所以无法直接调用- 即使可以访问控件,直接把控件对象赋值给
UserName字符串属性也不符合要求,需要取控件的Text属性才能拿到用户输入的文本内容
解决方案
方案1:不需要保留方法静态属性时,直接修改方法定义
去掉方法的static修饰符,同时修正控件取值的写法:
private ApplicationUser CreateDefualtUser() { return new ApplicationUser { UserName = UserNameTextBox.Text, FirstName = Fname, // 若Fname、Lname、email也是页面控件,同样需要取.Text属性 LastName = Lname, Email = email, AvatarUrl = "~/Content/Photo/custom.jpg" }; }
方案2:需要保留方法静态属性时,参数传入所需值
不要在静态方法内部访问页面控件,所有需要的数值从调用处作为参数传入:
// 静态方法定义 private static ApplicationUser CreateDefualtUser(string userName, string firstName, string lastName, string email) { return new ApplicationUser { UserName = userName, FirstName = firstName, LastName = lastName, Email = email, AvatarUrl = "~/Content/Photo/custom.jpg" }; } // 在页面实例代码中调用的示例 var defaultUser = CreateDefualtUser(UserNameTextBox.Text, Fname.Text, Lname.Text, email.Text);
内容的提问来源于stack exchange,提问作者Dude Hexafandra
相关产品推荐
相关产品推荐

