Eine der Neuerungen erster Version Stimulsoft Reports und Dashboards in 2023 Unterstützung der Arbeit mit Razor Pages in Reports.WEB und Dashboards.WEB. In diesem Artikel erzählen wir darüber ausführlich.

Was sind Razor Pages?

Die Funktionalität Razor Pages wurde im Jahre 2019 auf der Plattform ASP.NET verfügbar. Im Wesentlichen, Razor Page ist eine Seite, die aus standardmäßiger Auszeichnung und Backend-Klasse besteht. Diese Klasse ist gleichzeitig das Modell und der Controller. Solche Funktionalität erlaubt die Seiten mit Razor-Code zu erstellen und die Anfragen zu verarbeiten. Anders gesagt, Razor Pages ist das Analogon der Web-Formulare, das ist die alternative Lösung für Erstellen von Anwendungen, in erster Linie, für kleine Apps.

Was hat sich verändert?

Es gibt derzeit die Möglichkeit, für unsere ASP.NET Core-Komponenten, die zu Softwares Reports.WEB und Dashboards.WEB gehören, Web-Anwendungen und Projekte mit Verwendung von Razor Pages zu erstellen. In erstellten Projekten sind alle Tools für Erstellen, Anzeigen und Umwandeln von Berichten und Dashboards verfügbar. Außerdem, alle schon existierten Optionen der Komponenten und Einstellungen der Gestaltung, Rendern und Export vom Bericht mit dem Code auf der Server-Seite sind verfügbar.

Wie es funktioniert?

Vor der Version 2023.1 funktionierten unsere Komponenten für ASP.NET Core nur mit der Verwendung von MVC-Technologie, die, natürlich, sowohl Vorteile, als auch Nachteile hat. Nur zum Vergleich, um die Komponente auf der Seite mit MVC anzuzeigen, musste man die Auszeichnung der Komponente und ihrer Option auf View festlegen, dann alle erforderlichen Aktionen im Controller festlegen, und, wenn es erforderlich ist, die Datenstruktur im Model festlegen:

View:
@Html.StiNetCoreViewer(new StiNetCoreViewerOptions()
{
	Actions =
	{
		GetReport = "GetReport",
		ViewerEvent = "ViewerEvent"
	}
})

Controller:
public IActionResult GetReport()
{
	var report = new StiReport();
	report.LoadDocument(StiNetCoreHelper.MapPath(this, "Reports/SimpleList.mdc"));

	return StiNetCoreViewer.GetReportResult(this, report);
}

public IActionResult ViewerEvent()
{
	return StiNetCoreViewer.ViewerEventResult(this);
}

Bei der Verwendung von Razor Pages können Sie den ganzen Code auf einer Seite platzieren, und die Ereignisse für GET- und POST-Anfragen werden statt der Controller-Aktionen festgelegt. Zum Beispiel, so sieht der Code des Bereitstellens unserer Komponente aus:
@Html.StiNetCoreViewer(new StiNetCoreViewerOptions()
{
	Actions =
	{
		GetReport = "GetReport",
		ViewerEvent = "ViewerEvent"
	}
})

public IActionResult OnPostGetReport()
{
	var report = new StiReport();
	report.LoadDocument(StiNetCoreHelper.MapPath(this, "Reports/SimpleList.mdc"));

	return StiNetCoreViewer.GetReportResult(this, report);
}

public IActionResult OnGetViewerEvent()
{
	return StiNetCoreViewer.ViewerEventResult(this);
}

public IActionResult OnPostViewerEvent()
{
	return StiNetCoreViewer.ViewerEventResult(this);
}

Der Code für Razor Pages hat ähnliche Struktur, aber es gibt einige Unterschiede:

  • Statt der Aktionen werden die Ereignisse der Verarbeitung der Anfragen verwendet;
  • Statt des Controllers wird das Objekt der Seite an die resultierenden Funktionen weitergeleitet;
  • Als Name des Ereignisses werden ein standardmäßiges Präfix der OnGet- oder OnPost-Anfrage-Typen, und auch der in Einstellungen der Komponente Name des Ereignisses verwendet.

Die resultierende Funktion kehrt erforderliche Antwort abhängig vom erforderlichen Viewer-Ereignis, gleich wir in MVC-Technologie. Darum bleibt die Arbeit der Komponente, grundsätzlich, ohne Änderungen, und die Komponente unterstützen gleichzeitig beide Technologien.

Zusätztliche Information

Wir versuchten maximal wie möglich das Bereitstellen der Komponenten zu vereinfachen, und die Kompatibilität mit vorherigen Versionen zu speichern, darum braucht man keine großen Änderungen für Wechseln zu Razor Pages. Wir haben die Dokumentation aktualisiert und viele Beispiele hinzugefügt. Wir hoffen, dass es wesentlich die Integration der Komponenten in Ihre Anwendung vereinfacht, und keine Schwierigkeiten beim Wechseln von MVC zu Razor Pages aufruft.
Wenn Sie noch Fragen haben, kontaktieren Sie uns.
By using this website, you agree to the use of cookies for analytics and personalized content. Cookies store useful information on your computer to help us improve efficiency and usability. For more information, please read the privacy policy and cookie policy.