ServiceStack默认Razor视图与服务

时间:2014-10-04 15:36:30

标签: servicestack servicestack-razor

我想在自托管SS应用程序中托管一个非常简单的剃刀页面。

我需要/ path来解析为default.cshtml - 这是开箱即用的。

但我需要在视图中访问用户auth会话。为此,我猜我需要一个服务来为default.cshtml创建模型

到目前为止我尝试的所有内容都不起作用,我无法使用route /创建DefaultRequest,因为这是不允许的。

任何人都有任何关于我需要做什么的线索?

我尝试过后退路线,但没有运气:

[FallbackRoute("/{Path*}")]
public class Fallback
{
    public string Path { get; set; }
}

public class DefaultService : Service
{
    public DefaultService ()
    {
    }

    public object Get(Fallback request){
        return new HttpResult() // #6
        {
            View = "Rockstars"  // #1
        };
    }
}

1 个答案:

答案 0 :(得分:0)

您可以在Razor Views基础ViewPageBase with base.SessionAs中直接访问您键入的UserAuth会话,例如:

@{
    var session = base.SessionAs<CustomUserSession>();
}

您还可以使用base.SessionBag以及base.IsAuthenticated访问动态会话包,以确定用户是否经过身份验证。

Fallback Route

要调用服务来处理您的默认页面,您需要使用Fallback Route,例如:

[FallbackRoute("/{Path*}")]
public class DefaultPage
{
    public string Path { get; set; }
}

后备服务可用于处理包括根/页面在内的每个不匹配的请求。