我有一个在http://example.com/api.ashx运行的服务栈 我设置了一个响应过滤器强制特定类型的dto内容到html并将其templateName属性设置为“RulesView.md”。 但是我得到了发送给客户端的servicestack默认json报告视图而不是我的标记。我有一个带有RulesView.md文件的views文件夹。我正在使用版本3.7.9,如果这很重要。我需要配置什么吗?
答案 0 :(得分:0)
如果它返回的默认json报告超过您的请求,则发现与现有的Markdown页面不匹配:
注意:TemplateName不应包含.md
扩展名,请改为RulesView
。
来自:http://www.servicestack.net/docs/markdown/markdown-features
ServiceStack用于解析用于呈现HTML输出的相应Markdown模板的解析顺序是:
如果Web服务指定了一个模板(通过自定义的IHttpResult.TemplateName响应) - 那么具有该名称的视图。
与Response DTO同名的视图,首先在/ Views中查看/ Views / Shared
与请求DTO同名的视图,首先在/ Views中查看/ Views / Shared
答案 1 :(得分:0)
如果从处理程序返回HttpResult,则在写入响应流时,不会使用带有markdown的TemplateName属性。您必须将HttpResult.Response设置为IHttpResult(您不能使用HttpResult,因为它还实现了将响应属性写入http响应流的IStreamWriter)。这意味着在返回HttpResult时,您必须使用Response属性中的类名来命名您的降价页面。最后,看起来当servicestack编译视图时,它不会包含语法错误的文件。
就我而言,我有
@foreach p in products
-@p.Name
我需要的地方
@foreach p in Model.products{
- @p.Name
}