当我在服务器端HiddenField
的对象中添加控件Page
并调用HttpContext.Current.Server.Execute
时,代码抛出错误,但是相同的代码在使用时运行良好Panel
对象而不是相同的代码时运行良好HiddenField
以下是供参考的示例代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Page pageHolder;
pageHolder = new Page();
Panel p = new Panel();
HiddenField h = new HiddenField();
pageHolder.Controls.Add(h);
using (StringWriter l_SW = new StringWriter())
{
HttpContext.Current.Server.Execute(pageHolder, l_SW, true);
}
}
}
}
它抛出的异常是
“HiddenField”类型的控件“ctl00”必须放在带有 runat=server 的表单标记内。
不知道为什么只有 HiddenField 会发生这种情况。