更改后视图不会刷新

Cro*_*ire 15 c# asp.net-mvc razor visual-studio-2015

我遇到了这个令人沮丧的问题.我在剃刀视图(cshtml)中更改文本Start without Debugging,刷新(Ctrl + F5)浏览器但没有任何反应.奇怪的是,如果我修改控制器的返回值(比方说return Ok("test");)或包含的静态文件(如CSS),刷新,则更改是可见的.剃刀视图仅在我每次停止启动和停止调试时才会更新.

以下是我已经尝试过的事情:

  • 确保Detect when file is changed outside the environment已选中.
  • On run, when projects are out of dateAlways build.
  • 尝试在Edge,Chrome和Firefox上使用和不使用硬刷新功能.
  • 重新启动Visual Studio数字时间.
  • 清洁/重建解决方案.
  • 在新模板项目上执行此操作.

PS我看到有很多类似的问题,然而,没有一个答案可以解决我的问题.

更新

这似乎是一个更大规模的问题.如果我:

  1. 像这样在父视图中创建一个必需的剃刀部分@RenderSection("css", required: true).
  2. 不在子视图中实现渲染.
  3. 我(显然)得到了InvalidOperationException: The following sections have been defined but have not been rendered by the page at 'bla\bla\bla':css.
  4. 然后我实现它.
  5. 在Firefox中保存,按Ctrl + F5.错误仍然存​​在.

在这一点上,VS 2015实际上是无法使用的,因为你不知道,如果你真的错过了某些东西,或者它的VS表现出来了

dex*_*ell 14

我以前遇到过这个问题.我的情况是我在Macbook Pro上运行Windows 10 VM Parallel,项目文件在mac OS的共享文件夹中.

如果有人像我这样的情况,将项目移动到非共享目录,如C:\将解决问题.


iJu*_*Boy 5

这似乎是在幕后发生的事情:.net框架将剃须刀编译成机器形式(DLL)并执行它。然后,它监视您的Web文件夹以监视更改,并在检测到更改时重新编译您的剃刀并执行新的DLL。

在您的情况下,似乎与监视文件更改有关的某些操作失败。它仍然可以完全重新启动,因为即使没有检测到文件更改,编译仍会发生。常见原因有:

  1. 您正在通过网络(NAS或文件共享)提供文件,这不允许您的PC监视更改。这可能是缺少的功能(例如非SMB文件共享)或权限问题。这在网络农场方案中很常见,但在您的开发方案中可能不是。
  2. 已经有其他东西锁定了文件(权限?),这阻止了此监视挂钩保留文件。

为了确认这是问题,我建议仅编辑web.config(添加/删除字符),然后查看重新加载是否成功-只是证明这是重新编译问题,而不是visual-studio-debugging问题。假设是这种情况,并假设它不是NAS,我建议暂时为该文件夹授予“所有人-一切”权限,以查看该文件夹是否正常工作,然后逐渐将其减少到所需的位置。


Moe*_*oes 5

检查web.config并确保你没有fcnMode="Disabled"fcnMode="NotSet"

使用

<httpRuntime targetFramework="4.5.2" fcnMode="Default" />
Run Code Online (Sandbox Code Playgroud)

要么

<httpRuntime targetFramework="4.5.2" fcnMode="Single" />
Run Code Online (Sandbox Code Playgroud)
  • 默认 对于每个子目录,应用程序都会创建一个监视子目录的对象。这是默认行为。
  • 禁用 文件更改通知已禁用。
  • NotSet未设置文件更改通知,因此应用程序创建一个监视每个子目录的对象。这是默认行为。
  • 单个应用程序创建一个对象来监视主目录,并使用该对象来监视每个子目录。

FcnMode枚举