无法从aspx页面获取Request.Form.Get valus ContentPlaceHolder(表单错误)
问题描述:
我正在写一个web应用程序在asp.net我有一个母版页包含一个ContentPlaceHolder 和一个窗体包装ContentPlaceHolder在aspx页面中,我实现了ContentPlaceHolder并在此页面中有一些控件。无法从aspx页面获取Request.Form.Get valus ContentPlaceHolder(表单错误)
现在,当我试图使用Request.Form.Get(“我的控制名称”)(从aspx后面的代码),我得到空。 如果我尝试在aspx页面中添加一个表单,我会收到一个错误消息,说您只能在页面中有一个表单。
我怎样才能得到我的控制值?
感谢您的帮助。
答
如果您只是试图在主页和页面之间传递一个值,假设该值在主页上,您可以将Page.Master转换为正确的类型。在母版页上,您可以将控件包装在母版上。
母版
public string MyControlText
{
get
{
return myControl.Text;
}
set
{
myControl.Text = value;
}
}
在页面
((MyMasterPage)this.Page.Master).MyControlText = "To master from page";
string fromMasterToPage = ((MyMasterPage)this.Page.Master).MyControlText;
答
Request.Form("YourControlName")
因为ASP.NET增加了一些额外的东西给你的控制,当它输出到页面的名称不能与服务器控件工作。它这样做是为了确保名称在页面上的所有控件中保持唯一。因此,例如,当您的控件在页面上创建时,实际上可能会命名为“ctl00_maincontent_placeholder1_YourControlName”。
在ASP.NET中,这通常不是问题,因为您通常不使用Request.Forms来获取控件值。而是使用服务器控件的方法来获取值。因此,对于文本框,您可以使用YourControlName.Text
来获取输入到文本框中的值。
什么是form标签中的方法,如method = post? – Saurabh 2012-01-28 10:03:58