我正在尝试在我的项目中使用 ServiceStack Razor。我设置了一个非常简单的 DTO:
namespace ModelsWeb.Diagnostics
{
[Route("/echo")]
[Route("/echo/{Text}")]
public class Echo
{
public string Text { get; set; }
}
public class EchoResponse
{
public ResponseStatus ResponseStatus { get; set; }
public string Result { get; set; }
}
}
以及与之配套的服务:
namespace Rest.Services
{
public class EchoService : Service
{
public object Any(Echo request)
{
return new EchoResponse {Result = request.Text};
}
}
}
请注意,DTO 和服务位于不同的命名空间中。这是因为我同时构建了两个应用程序——服务器和胖客户端——并且我将所有 DTO 都放在了它们都依赖的单独的类库中。这样,客户端可以仅引用该类库,而不能引用其他服务器端代码。我正在使用 Razor 为某些服务器功能提供 Web 界面。
无论如何,我还为我的 Echo 服务写了一个简单的视图:
@using ServiceStack.Razor
@using ModelsWeb.Diagnostics
@inherits ViewPage<EchoResponse>
@{
ViewBag.Title = "Echo Response";
Layout = "BasePage";
}
<h1>You typed: @Model.Result</h1>
当我"http://localhost:62061/echo/hello2"
在浏览器中输入时,我的日志中出现错误:
Cannot implicitly convert type 'ServiceStack.Razor.Compilation.RazorDynamicObject'
to 'ModelsWeb.Diagnostics.EchoResponse'
但是,模板仍然有效,我在浏览器中看到了预期的结果。这里发生了什么 ?我做错什么了吗?如果没有,我该如何抑制这个异常?