是否可以使用servicestack在剃刀视图中设置断点?

时间:2012-09-22 06:11:20

标签: razor servicestack

我正在服务堆栈中尝试新的razor视图,我有这个观点:

@inherits ServiceStack.Razor.ViewPage<ServiceStackRazorCrud.Api.UserPageResourceResponse>
@{
    var m = Model;  // <-- I have a breakpoint in this line.
    var req = Request; 
    var res = Response;
}

当我设置断点并运行应用程序(控制台应用程序)时,我可以看到视图已编译但在我在浏览器中请求视图时调试器不会中断。我假设这是因为视图是在应用程序启动时动态编译的或类似的东西。有可能以某种方式让断点起作用吗?

1 个答案:

答案 0 :(得分:3)

AFAIK无法以这种方式调试视图(目前使用的是3.9.43版本,我相信更好的编译错误诊断)。

尝试并保持视图代码简单,仅限于简单的循环/渲染,并在DTO上使用扩展方法进行任何复杂的逻辑/处理,这些都允许调试。您也可以考虑使用logging或简单的Debug扩展方法:

using ServiceStack.Html;
public static class HtmlHelperExtensions
{
    public static bool IsDebug(this HtmlHelper htmlHelper)
    {
    #if DEBUG
        return true;
    #else
        return false;
    #endif
    }
}

@using ServiceStack.Text
@inherits ServiceStack.Razor.ViewPage<ServiceStackRazorCrud.Api.UserPageResourceResponse>
@{
    var m = Model;  
}

@if (this.Html.IsDebug())
{
    <div class="debug">@(this.Model == null ? "m == null" : Model.Dump())</div>
}