Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Razor从Razor视图输出绝对URL_C#_Razor_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack - Fatal编程技术网 servicestack,C#,Razor,servicestack" /> servicestack,C#,Razor,servicestack" />

C# Razor从Razor视图输出绝对URL

C# Razor从Razor视图输出绝对URL,c#,razor,servicestack,C#,Razor,servicestack,到处玩,非常喜欢。想知道在使用自托管应用程序时,是否有人能帮我找到一种从视图输出绝对URL的方法 这是我能想到的最好的结果: public static class UrlHelperExtensions { public static string AbsoluteContent(this UrlHelper urlHelper, string path) { var baseUri = new Uri(EndpointHost.AppHost.Config.W

到处玩,非常喜欢。想知道在使用自托管应用程序时,是否有人能帮我找到一种从视图输出绝对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
    }
}

呈现模板时,请求对象为空

在Razor中,您可以访问HTTP
base.Request
base.Response
,在这里您可以访问有关请求的元数据,如
base.Request.AbsoluteUri
,它返回当前请求Url,其中应该包含您想要的信息。

这不是我们支持的用例。但是应该很清楚为什么
请求
为空。我建议你将Url传递到你的模型中,如果你要像这样离线使用它的话。另外,请不要在未来的Q中遗漏这样的关键信息,因为这不必要地浪费了回答者的时间。