Я хочу, чтобы веб-служба загружала элемент управления .ascx, загружала в него некоторые значения и затем возвращала содержимое HTML этого элемента управления. У меня есть что-то вроде этого:ASP.NET LoadControl Использование ключевого слова 'base' недопустимо в этом контексте
[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
и отладчик говорит:
Использование ключевого слова 'базовой' не является действительным в этом контексте
Любая помощь будет оценена, спасибо!
10x Андрей, таким образом, он не падает в базе. ODataBinding(); однако я считаю, что это меняет смысл кода. В MyCustomReport есть субконтроллеры с аналогичным переопределением - до, base.DataBind(); привели к их привязке данных, теперь их OnDataBinding() s не вызываются. Тот же самый контроль работает, когда он помещается непосредственно в файл .aspx, проблема заключается в том, как я загружаю его в веб-службу, но я не могу понять, что именно не так. – user128873