https://github.com/ServiceStack/RazorRockstarsで遊んでみてください。自己ホスト型アプリケーションを使用しているときにビューから絶対 URL を出力する方法を誰かが見つけるのを手伝ってくれるかどうか疑問に思っていますか?
これは私が思い付くことができるのと同じくらい良いです:
public static class UrlHelperExtensions
{
public static string AbsoluteContent(this UrlHelper urlHelper, string path)
{
var baseUri = new Uri(EndpointHost.AppHost.Config.WebHostUrl);
return new Uri(baseUri, path).ToString();
}
}
ホストの構成時に AppHost.Config.WebHostUrl が設定されている場所
アップデート
申し訳ありませんが、もっと明確にする必要がありました。実際には、メール テンプレートをレンダリングする手段として、少し非標準的な方法で ServiceStack を使用しています。だから私は次のようなサービスを持っています:
public class EmailService : Service
{
public void Post(EmailTask request)
{
var format = GetAppHost().Plugins.Find(x => x is RazorFormat) as RazorFormat;
var template = format.ExecuteTemplate(request.Model, request.Template.ToString(), string.Empty);
var html = template.Result;
// email the rendered template etc
}
}
テンプレートがレンダリングされるとき、Request オブジェクトは null です