Tag: asp.net core

Razor类库是否也可以打包静态文件(js,css等)?

可能已经重复了这个 ,但由于那篇文章没有任何答案,我发布了这个问题。 新的Razor类库非常棒,但它无法打包库文件(如jQuery,共享CSS)。 我可以在多个Razor Page项目中重复使用CSS,使用Razor类库或其他任何东西(我的目的是,多个网站使用相同的CSS,并且单个更改适用于所有项目)。 我尝试在Razor类库项目中创建文件夹wwwroot ,但它没有按预期工作(我可以理解为什么)。

使用Entity Framework Core调用标量函数的最佳实践(2.1)

我经常需要从我的Web应用程序(ASP.NET Core / EF Core)调用SQL Server上定义的标量函数。 由于这些函数只是简单的辅助函数,我也使用了很多函数,因此我使用一般模式来调用这些标量函数 – 借助EF Core 2.1提供的新查询类型。 由于我对EF Core相对较新,我的问题是这种模式是否会导致问题和/或是否有更好的解决方案或最佳实践来调用标量函数。 解决方案有效,到目前为止我无法观察到任何问题但是例如我想知道对于不同的函数使用相同的查询类型是否会导致意外的值或由于EF Core中的缓存/跟踪行为等引起的奇怪行为 – 它更像是一个直觉。 所以这是模式:我不是为每个标量函数定义不同的实体类型,而是简单地定义一个generics类型: public class PrimitiveDto { public T Value { get; set; } } 在我的上下文类中,我为我希望使用的标量函数的每个返回类型注册这些类型 – 因此对于返回’int’的所有标量函数,上下文类将有一个额外的条目,如下所示: public virtual DbQuery<PrimitiveDto> BasicIntDto { get; set; } 在应用程序的每个部分,我想调用一个返回’int’的标量函数,我只使用相同的以下模式: context.BasicIntDto.FromSql(“SELECT AS Value”) 通过使用这种模式,我可以以相同的方式调用任意数量的函数,而无需定义其他类型或扩展上下文类。 如果我能通过这种模式遇到陷阱,请告诉我。 非常感谢你。

在MVC中路由6

我有一个超级简单的控制器,有两种方法: public IActionResult Users(long id) { return Json(new { name = “Example User” }); } public IActionResult Users() { return Json(new { list = new List() }); } 一个用于选择所有用户,另一个用于返回所有用户。 在web api 2中,我可以使用以下路由,一切正常: config.Routes.MapHttpRoute( name: “Users”, routeTemplate: “v1/Users”, defaults: new { action = “Users”, controller = “Users” }, constraints: null, handler: new TokenValidationHandler() { InnerHandler = […]

使用Azure中的ASP.NET Core在Redis中保存用户会话

我正在使用redis缓存来保存项目中的一些东西。 我正在使用Azure(WebApp),当我在我的预生产环境到生产之间进行SWAP时,用户会话丢失了,他需要重新登录我的网页。 我正在使用Identity 3.0,使用UseCookieAuthentication。 我想在Redis中存储“会话”以便在我进行交换时解决我的问题。 我没有找到有关它的信息,有什么想法吗? 谢谢 Startup.cs代码配置服务: public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddApplicationInsightsTelemetry(Configuration); // Registers MongoDB conventions for ignoring default and blank fields // NOTE: if you have registered default conventions elsewhere, probably don’t need to do this //RegisterClassMap.Init(); AutoMapperWebConfiguration.Configure(); services.AddSingleton(); // Add Mongo Identity services to the services container. […]

如何在ASP.NET 5中修复CS0433错误?

引导它的任何地方的代码行引用类型System.Collections.Generic.Dictionary无论是作为变量类型,还是在使用声明中。 这个使用声明运行良好,使我的System.Collections.Generic.Dictionary在我class级的100个地方编写System.Collections.Generic.Dictionary更不令人厌恶。 取出使用声明并不能解决我的问题,只是将它移动到我的方法参数中使用字典类型的地方。 完整错误文字: CS0433 The type ‘Dictionary’ exists in both ‘System.Collections, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ and ‘mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’ ProjectName.DNX 使用DNX 1.0.0-beta7的基于ASP.NET 5 MVC 6模板的项目中出现此错误,该项目具有一些引用generics集合类型的模型和控制器类。 project.json设置如下: “frameworks”: { “dnx451”: { } } 如果您只是说它出现样本问题: “frameworks”: { “dotnet”: { } } 导致它的代码行是一个使用声明,一个类型别名的排序,在我尝试将beta6项目转换为beta7之前一直运行良好。 转换继续进行,直到我尝试使用JsonDictionary别名添加这些,然后编译中断。 我搜索过这个错误代码,它在ASP.NET中有着漫长而无意义的历史。 是什么导致这个问题? 我怎么能修复它,因为我不能从我的项目中删除mscorlib,也不能删除System.Collections?

ASP .NET Core:仅适用于某些静态文件类型的CORS标头

我有一个ASP .NET Core自托管项目。 我正在从静态文件夹中提供内容(没问题)。 它可以跨站点提供图像而不会出现问题(CORS标题显示)。 但是,对于某些文件类型(如JSON),它们的CORS标头不会显示,并且客户端站点无法查看内容。 如果我将文件重命名为未知类型(例如JSONX),它将使用CORS标头提供服务,没问题。 如何使用CORS标头来提供服务呢? 我在Startup.cs中设置了以下CORS策略: public void ConfigureServices(IServiceCollection services) { services.AddCors(options => { options.AddPolicy(“CorsPolicy”, builder => builder.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials() ); }); // Add framework services. services.AddMvc(); } 以下是我的配置 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { app.UseCors(“CorsPolicy”); loggerFactory.AddConsole(Configuration.GetSection(“Logging”)); loggerFactory.AddDebug(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } else { app.UseExceptionHandler(“/Home/Error”); } […]

ASPNET 5 MVC 6中的远程validation

在aspnet 5中找不到JsonRequestBehavior 我正在尝试实现远程validation演示,似乎Microsoft.AspNet.Mvc不包含JsonRequestBehavior枚举。 但它确实存在于以前版本的MVC中的System.Web.Mvc命名空间中 模型: public class Person : Entity { [Required] [StringLength(512)] [Remote(“IsAllowedName”, “Validation”, ErrorMessage=”This name is not allowed!” )] [Display(Name = “First (and middle) name”)] public String FirstMidName { get; set; } 视图: … … 控制器: [HttpGet] public JsonResult IsAllowedName(string FirstMidName) { if (FirstMidName.ToLower() == “oleg”) { return Json(false, JsonRequestBehavior.AllowGet); } return Json(true); […]

ASP.NET Core Identity不会注入UserManager

我有一个较旧的asp.net核心身份数据库,我想将一个新项目(一个web api)映射到它。 仅仅为了测试,我复制了Models文件夹,以及上一个项目中的ApplicationUser文件(ApplicationUser只是inheritance自IdentityUser,无论如何都没有变化) – 首先做数据库似乎是一个坏主意。 我在ConfigureServices中注册了Identity(但是我没有将它添加到管道中,因为我的唯一目的是使用UserStore) services.AddIdentity() .AddEntityFrameworkStores() .AddDefaultTokenProviders(); 我的期望是现在 UserManager ……应该自动注入构造函数中。 但是,将以下代码添加到控制器私有UserManager _userManager时; public UserController(UserManager userManager) { _userManager = userManager; } …每次调用api都会以exception结束:HttpRequestException:响应状态代码不表示成功:500(内部服务器错误)。 删除“注入”代码可以顺利运行可以接受请求的web api。 在我的任何代码到达之前发生这种情况很难调试。 知道为什么会这样吗? PS从“exception设置”窗口启用所有exception后,我得到了这个: 抛出exception:’System.InvalidOperationException’ Microsoft.Extensions.DependencyInjection.dll 附加信息:尝试激活’Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`4 [Namespace.Models]时,无法解析类型’Namespace.Data.ApplicationDbContext’的服务。 ApplicationUser,Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityRole,Namespace.Data.ApplicationDbContext,System.String]”。

如何在ASP.NET Core 1中使用EF6

我创建了一个ASP.NET Core 1项目并使用.Net Core 1.0框架。 并希望使用Entity Framework 6 。 我按照这个教程https://docs.efproject.net/en/latest/platforms/aspnetcore/new-db.html ,当我尝试使用语句进行迁移时: PM> Add-Migration MyFirstMigration 然后它告诉我: The EntityFramework package is not installed on project ‘IndustryCloud’. 可以在ASP.NET Core 1中使用EF6吗?

如何在ASP.NET Core项目中包含对程序集的引用

我有这条线 string sConnectionString = ConfigurationManager.ConnectionStrings[“Hangfire”].ConnectionString; 它需要包含System.Configuration 在项目的哪个地方,我必须添加对System.Configuration引用,因为我在References下找不到经典的地方吗?