Ich möchte, dass ein Webdienst ein .ascx-Steuerelement lädt, einige Werte darin lädt und dann den HTML-Inhalt dieses Steuerelements zurückgibt. Ich habe so etwas wie das:ASP.NET LoadControl Die Verwendung des Schlüsselwortes 'base' ist in diesem Kontext nicht gültig.
[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 überschreibt DataBind()
:
public override void DataBind()
{
base.DataBind();
// etc.
}
Die Reihe base.DataBind()
wirft einen NullReferenceException
und der Debugger sagt:
Verwendung von Keyword 'Basis' nicht gültig in diesem Zusammenhang
Jede Hilfe wird geschätzt, danke!
10x Andrew, so stürzt es nicht bei base ab.OnDataBinding(); Aber ich denke, das ändert die Bedeutung des Codes. MyCustomReport hat Untersteuerungen, mit einer ähnlichen Überschreibung - zuvor, der Base.DataBind(); führte zu ihrer Datenbindung, jetzt werden ihre OnDataBinding() s nicht aufgerufen. Das selbe Steuerelement funktioniert, wenn es direkt in eine ASPX-Datei eingefügt wird, scheint das Problem die Art zu sein, wie ich es im Webdienst lade, aber ich kann nicht herausfinden, was genau falsch ist. – user128873