ASP.NET LoadControl Использование ключевого слова 'base' недопустимо в этом контексте.
Я хочу, чтобы веб-служба загружала элемент управления.ascx, загружала в него некоторые значения и затем возвращала содержимое HTML этого элемента управления. У меня есть что-то подобное:
[WebMethod(EnableSession = true)]
public void GetHTML()
{
UserControl loader = new UserControl();
MyCustomReport reportControl =
(MyCustomReport)loader.LoadControl("~/The/path/to/the/.ascx");
reportControl.DataBind();
return "TODO";
}
MyCustomReport переопределяет DataBind()
:
public override void DataBind()
{
base.DataBind();
// etc.
}
Ряд base.DataBind()
бросает NullReferenceException
и отладчик говорит:
Использование ключевого слова 'base' недопустимо в этом контексте.
Любая помощь будет оценена, спасибо!
1 ответ
Попробуй это:
public override void OnDataBinding()
{
base.OnDataBinding();
// other stuff here ...
}
UserControl
не имеет виртуального DataBind
метод, но у него есть виртуальный OnDataBinding
метод. Я считаю, что это метод, который вы хотите переопределить.