Ich probiere gerade die Razor-Funktionalität in Service Stack aus. Ich habe eine Razor cshtml-View, die für eines meiner Response-DTOs funktioniert.
I need to access some values from the request DTO in the razor view that have been filled in from some fields from the REST route, so i can construct a url to put into the response html page and also label some form labels.
Gibt es einen Weg, dies zu tun? Ich möchte die Eigenschaft nicht vom Request-DTO in das Response-DTO duplizieren, nur für diese HTML-View. Da ich versuche, einen bestehenden REST-Service eines anderen Produkts nachzubilden, möchte ich keine zusätzlichen Daten nur für die HTML-View ausgeben.
z.B. http://localhost/rest/{Name}/details/{Id}
z.B.
@inherits ViewPage
@{
ViewBag.Title = "titel noch zu tun";
Layout = "HtmlReport";
}
dies muss aus dem Request-DTO stammen und NICHT @Model
[Link zum Benutzer](/rest/@Model.Name)
[Link zu Benutzerdetails](/rest/@Model.Name/details/@Model.Id)
0 Stimmen
Es gibt keinen anderen Weg, als Ihr DTO zum ViewModel hinzuzufügen ... es sei denn, Sie möchten es zu einem der Hilfsobjekte wie dem
ViewBag
, demPage
-Objekt, derSession
usw. hinzufügen.0 Stimmen
Ich bin neu bei Razor. Wie füge ich es zum ViewBag-Objekt hinzu? Ein anderer Gedanke, den ich gerade hatte, ist, wenn ich feststelle, dass es nicht ?f=json oder XML ist, könnte ich einen Wrapper htmlResponseDTO zurückgeben, der Anfrage- und Antwortobjekte enthält.
0 Stimmen
Ja, ich würde mit Ihrer Idee eines Wrapper-Objekts, das beide enthält, gehen - ViewBag ist nicht ratsam, weil es nicht stark typisiert ist und daher Wartungsprobleme verursacht.