0

我正在关注MSDN 杂志的新 Katana 文章。该页面没有显示模型的标题,而是按字面意思显示:

@Model.title

如果我在我的 HomeModule 中放置一个断点并单步执行它,那么页面会正确显示:

我们有问题...

这是 HomeModule:

public class HomeModule : NancyModule
{
    public HomeModule()
    {
        Get["/"] = _ =>
        {
            var model = new { title = "We've got issues..." };
            return View["home", model];
        };
    }
}

为什么设置断点并因此更改时间会导致页面正确显示模型的标题?HTML 渲染速度是否过快?我不确定这是怎么回事,因为 HomeModule 不是决定返回什么 HTML 的吗?

注意:在 HomeModule 中放置断点时,会被命中两次。不知道为什么。也许这与它有关?

这是 Home.html 的开头。最后一行显示了@Model.title 部分。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <script src="../Scripts/jquery-2.0.3.js"></script>
    <script src="../Scripts/knockout-2.3.0.js"></script>
    <title>@Model.title</title>    

编辑

所以这很奇怪。在 VS 2013 中,当我单击运行应用程序时,如果 HomeModule 是活动选项卡,我会得到正确的结果。如果 Home.html 是活动选项卡,我会得到文字 @Model.title。

4

1 回答 1

1

这与 Nancy 无关,这是 Visual Studio 试图通过假设您想在浏览器中查看该页面并假设它是一个普通网站来“提供帮助”。这两者实际上都没有帮助。

我同意这很烦人,但它是 Visual Studio 的“功能”-也许尝试挖掘工具/选项,看看是否有任何方法可以将其关闭?

从 Bob Horn 编辑 - 我找到了设置

在项目的属性中,在 web 选项卡上,选择了当前页面。在我将该设置更改为“开始 URL”并使用“项目 URL”文本框中指定的相同 URL 后,运行应用程序按预期工作。

在此处输入图像描述

于 2013-10-18T14:08:02.493 回答