根据https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.0,默认情况下,剃刀视图应在asp.net core 3.0的本地环境更改时重新编译。
但是,我的项目不在本地执行。如果更改视图并在本地调试时刷新,则更改不会反映出来。我必须停止解决方案,重新运行,然后查看更改。
我在Visual Studio 2019上的默认ASP.NET Core Web应用程序模板上使用asp.net core 3.0.0预览版2使用剃刀页面执行此操作。我是否需要更改设置以启用此功能?
更新于2019年11月进行3.0版全面发布: 这个问题仍然有很多观点。引用了一些答案来补充
services.AddControllersWithViews().AddRazorRuntimeCompilation();
Run Code Online (Sandbox Code Playgroud)
添加Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet包后,将其添加到Startup.cs中的ConfigureServices()函数。就我而言,我仅使用Razor Pages,因此不调用AddControllersWithViews,因此这对我有用:
services.AddRazorPages().AddRazorRuntimeCompilation();
Run Code Online (Sandbox Code Playgroud) 我正在IList上构建一个扩展方法,以便能够输出作为列表传递给它的任何对象的指定属性,并将其输出为CSV字符串.看起来像:
public static string OutputCSVString<T>(this IList<T> list, List<Func<T, string>> properties)
{
foreach (var row in list)
{
foreach(var item in properties)
{
// Do the output work, including calling item(row).
}
// Output new line
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我必须将此方法称为:
// Assuming I've populated List <Product> ProductList up above...
var columns = new List<Func<Product, string>>();
columns.Add(x => x.Id);
columns.Add(x => x.Name);
string s = ProductList.OutputCSVString(columns);
Run Code Online (Sandbox Code Playgroud)
是否有更好的方法来传递我的lambda表达式而不必显式声明columns变量,如:
// This doesn't compile
string s = Products.OutputCSVString(new { p => p.Id , p => p.Name …Run Code Online (Sandbox Code Playgroud) 我需要使用Azure SQL数据仓库构建数据仓库,该数据仓库来自单个Azure SQL数据库中的数据.看看这篇文章,我觉得有两个选择:
我的Azure SQL数据库已规范化,但我想以星型或雪花型架构格式构建我的Azure SQL数据仓库,因此它不是表的直接副本 - 肯定需要进行一些转换.
鉴于Azure SQL数据库不支持SSIS,并且要求我在其上运行带有SQL Server的VM以使我的进程完全保留在Azure中,Azure Data Factory是Azure SQL数据库和Azure SQL数据仓库之间ETL数据的推荐工具吗?在这种情况下,一种选择与另一种选择是否更加完整?
谢谢!
我有一台服务器,我想从外部世界强制执行https通信,但是,服务器上的服务需要通过本地服务器上的进程通过http访问.
我尝试过以下方法:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
Run Code Online (Sandbox Code Playgroud)
但是,当然,无法通过http访问在本地服务器上运行的服务.如何为除localhost和127.0.0.1之外的所有内容强制执行https?或者,如果更容易,我有2个外部域用于此服务器 - 我如何仅强制https用于http://sub1.domain1.suffix1和http://sub2.domain2.suffix2以及服务器的外部IP?
c# ×2
apache ×1
asp.net-core ×1
azure ×1
azure-sqldw ×1
delegates ×1
lambda ×1
mod-rewrite ×1
razor-pages ×1
sql-server ×1
ssis ×1