如何在视图中查看编译时错误并在Mvc6中查看组件?
在MVC 5中,编辑.csproj
文件很简单。我们现在怎么做?
答案 0 :(得分:2)
RazorPreCompilation
类:namespace YourApp.Compiler.Preprocess
{
public sealed class RazorPreCompilation : RazorPreCompileModule
{
protected override bool EnablePreCompilation(BeforeCompileContext context) => true;
}
}
AddPrecompiledRazorViews
方法中为ConfigureServices
添加电话。public void ConfigureServices(IServiceCollection services)
{
// ... other code ...
services
.AddMvc()
.AddPrecompiledRazorViews(GetType().GetTypeInfo().Assembly);
// ... other code ...
}
如其他答案中所述,当预编译视图时,您无法在应用程序运行时更改它们。此外,有时您必须在项目上进行重建(而不仅仅是构建),以便新代码更改生效。例如,在重建项目之前,纠正Razor方法调用中的拼写错误仍可能会触发编译错误。
如果您希望使用预处理指令进行此操作,请将它们包围在AddPrecompiledRazorViews
调用中,如下所示:
public void ConfigureServices(IServiceCollection services)
{
// ... other code ...
var mvcBuilder = services.AddMvc()
#if !DEBUG
mvcBuilder.AddPrecompiledRazorViews(GetType().GetTypeInfo().Assembly);
#endif
// ... other code ...
}
答案 1 :(得分:0)
您必须添加一个类
AddPrecompiledRazorViews
并将<div onclick="fnOne()">
<a href="#" data-target="#div2">text</a>
</div>
添加到启动类中的mvc设置
请参阅此question
答案 2 :(得分:0)
您可以通过将以下类添加到项目中来使用预编译视图。但是,这样做会阻止您在运行时编辑视图。因此,我添加了#if !DEBUG
预处理器指令,以便只在发布模式下预编译视图。
#if !DEBUG
namespace MvcBoilerplate.Compiler.Preprocess
{
using System;
using Microsoft.AspNet.Mvc;
/// <summary>
/// Enable pre-compilation of Razor views, so that errors in your .cshtml files are caught and displayed
/// in the Visual Studio errors window at compile time, rather than your sites users receiving a runtime 500
/// internal server error. Pre-compilation may reduce the time it takes to build and launch your project but will
/// cause the build time to increase. It will also stop edit and continue working for .cshtml files.
/// </summary>
public class RazorPreCompilation : RazorPreCompileModule
{
}
}
#endif
其次,在Startup.cs中你需要实际使用你可以这样做的预编译视图:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().AddPrecompiledRazorViews(GetType().GetTypeInfo().Assembly);
}
预编译视图可以更快地启动应用程序启动性能。