Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Validator.RenderControl返回一个空字符串_Asp.net_Custom Controls_Render - Fatal编程技术网

Asp.net Validator.RenderControl返回一个空字符串

Asp.net Validator.RenderControl返回一个空字符串,asp.net,custom-controls,render,Asp.net,Custom Controls,Render,我已经面临以下问题,并与之斗争了近2天。 我有以下代码 protected override void Render(HtmlTextWriter writer) { string controlOutput; string validatorOutput; string allOutput; StringWriter controlStringWriter = new StringWriter();

我已经面临以下问题,并与之斗争了近2天。 我有以下代码

        protected override void Render(HtmlTextWriter writer)
    {
        string controlOutput;
        string validatorOutput;
        string allOutput;
        StringWriter controlStringWriter = new StringWriter();
        HtmlTextWriter controlHtmlWriter = new HtmlTextWriter(controlStringWriter);

        StringWriter validatorsStringWriter = new StringWriter();
        HtmlTextWriter validatorsHtmlWriter = new HtmlTextWriter(validatorsStringWriter);

        base.Render(controlHtmlWriter);
        controlOutput = controlStringWriter.ToString();

        this.renderValidators(validatorsHtmlWriter);
        validatorOutput = validatorsStringWriter.ToString();

        allOutput = String.Format("{0} {1}", controlOutput, validatorOutput);
        writer.Write(allOutput);
    }
renderValidators函数是:

  private void renderValidators(HtmlTextWriter writer)
        {
            foreach (BaseValidator validator in this.ValidatorsCollection)
            {
                validator.RenderControl(writer);
            }
        }
Render函数返回一个空字符串。 集合中验证程序的Visible属性设置为true

我正在OnInit函数中添加验证器。在第一次呈现validator.RenderControl(writer)期间;返回空字符串,回发后开始返回html输入


也许有人遇到过这样的问题

据我所知,在呈现验证器之前,您需要检查控件是否已添加到页面

        Page page = Page;
        if (page == null || page.Request == null) {
            return false;
        }
一个非常有用的例子可以在