Tag: asp.net core mvc

与ASP.NET核心和MVC6(核心)的统一

更新09.08.2018 Unity正在开发中,但我没有时间来测试它如何与ASP.NET Core框架配合使用。 更新于15.03.2018 此解决方案针对在使用.NET Framework 4.5.2而不是 .NET Core Framework时使用ASP.NET Core v1和Unity的特定问题。 我不得不使用这个设置,因为我需要一些.Net 4.5.2 DLL,但对于任何重新开始的人我都不会推荐这种方法。 此外,Unity还没有进一步开发(据我所知)所以我建议将Autofac框架用于新项目。 有关如何执行此操作的详细信息,请参阅此post 。 介绍 我正在使用ASP.NET和MVC构建Web应用程序。 此应用程序依赖于某些服务(WCF服务,数据存储区服务等)。 现在为了保持良好和分离,我想使用DI(Dependecy Injection)框架,特别是Unity。 初步研究 我找到了这篇博文,但遗憾的是它没有用。 这个想法虽然很好。 它基本上表示您不应将ServiceCollection中注册的所有服务注册到您自己的容器中,而应引用默认的ServiceProvider。 所以。 如果需要解决某些问题,则调用默认的ServiceProvider,如果没有解析,则使用您的自定义UnityContainer解析该类型。 问题 MVC始终尝试使用默认的ServiceProvider解析Controller。 此外,我注意到即使控制器得到正确解析,我也永远不会“混合”依赖关系。 现在,如果我想使用我的一个服务而且还要使用ASP的IOptions接口,则该类永远无法解析,因为这两个容器中没有一个具有这两种类型的解析。 我需要的 所以回顾一下,我需要以下内容: 我不需要将ASP.NET依赖项复制到UnityContainer中的设置 一个可以解析我的MVC控制器的容器 一个可以解决“混合”依赖关系的容器 编辑: 所以问题是我如何才能实现这些要点? 环境 project.json:

在ASP.NET Core 2.0 Web Api中返回“raw”json

AFAIK在ASP.NET Core Web Api中返回数据的标准方法是使用IActionResult并提供例如OkObject结果。 这适用于对象,但如果我以某种方式获得了JSON字符串,我只想将该JSON返回给调用者? 例如 public IActionResult GetSomeJSON() { return Ok(“{ \”name\”:\”John\”, \”age\”:31, \”city\”:\”New York\” }”); } ASP.NET Core在这里做的是,它接受JSON字符串,并再次将其包装到JSON中(例如,它转义为JSON) 使用[Produces(“text/plain”)]返回纯文本可以通过提供“RAW”内容来工作,但它也会将响应的内容类型设置为PLAIN而不是JSON。 我们在控制器上使用[Produces(“application/json”)] 。 如何在没有转义的情况下将JSON作为普通的JSON内容类型返回? 注意:获取JSON字符串无关紧要,它可能来自第三方服务,或者存在一些特殊的序列化需求,因此我们希望进行自定义序列化而不是使用默认的JSON.NET序列化程序。

如何自定义实现asp.net身份的UpdateAsync方法?

我正在做自定义asp.net身份而不使用asp.net内置表。我已成功创建用户实现自定义CreateAsync 现在我想用新的加密密码更新用户,所以我没有得到如何提供UpdateAsync method自定义实现。 这是我的表: 用户 : Id,Name,EmailId,Password,Statistics,Salary 型号 : public class UserModel : IUser { public string Id { get; set; } public string Name { get; set; } public string EmailId { get; set; } public string Password { get; set; } public int Salary { get; set; } } 我实现IUserstore的自定义类: public class UserStore […]

ASP.NET 5中的dependency injection和对象处理

任何人都可以帮助我理解Asp.Net 5中的dependency injection和对象配置的上下文。 我需要了解我的服务是否实现了IDispose接口,谁将调用dispose方法。 public void ConfigureServices(IServiceCollection services) { services.AddTransient(); services.AddScoped(); services.AddSingleton(); services.AddInstance(); }

如何在ASP.NET MVC 6中继续使用ModelState和RedirectToAction?

我有一个删除对象的方法。 删除不属于视图,并且是“EditReport”中的“删除”按钮。 成功删除“报告”上的重定向后。 [HttpPost] [Route(“{reportId:int}”)] [ValidateAntiForgeryToken] public IActionResult DeleteReport(int reportId) { var success = _reportService.DeleteReportControl(reportId); if (success == false) { ModelState.AddModelError(“Error”, “Messages”); return RedirectToAction(“EditReport”); } ModelState.AddModelError(“OK”, “Messages”); return RedirectToAction(“Report”); } 在ASP.NET MVC 5中,我使用以下属性在方法之间保存ModelState。 我从这里开始: https : //stackoverflow.com/a/12024227/3878213 public class SetTempDataModelStateAttribute : ActionFilterAttribute { public override void OnActionExecuted(ActionExecutedContext filterContext) { base.OnActionExecuted(filterContext); filterContext.Controller.TempData[“ModelState”] = filterContext.Controller.ViewData.ModelState; } } […]

如何在ASP.NET Core 1 MVC 6中为单元/集成测试模拟IFormFile?

我想编写用于在ASP.NET Core 1中上传文件的测试,但似乎找不到一种模拟/实例化从IFormFile派生的对象的好方法。 有关如何做到这一点的任何建议? 谢谢。

MVC6中的ASP身份 – 登录路径属性不起作用

从beta 5更新到beta 8后,我无法在cookie身份validation选项中设置自定义登录路径。 services.AddCookieAuthentication(config => { config.LoginPath = “/Auth/Login”; //or //config.LoginPath = new Microsoft.AspNet.Http.PathString(“Auth/Login”); }); 该值完全被忽略。 仍然会被重定向到默认的“ /帐户/登录 ”。 是否还有其他选项来设置此路径?

在Startup.cs中添加DbContextOptions而不注册数据存储

我的问题是下面的代码在启动期间没有注册数据存储。 这是我从应用程序的响应中得到的特定“错误”语句: An unhandled exception occurred while processing the request. InvalidOperationException: No data stores are configured. Configure a data store by overriding OnConfiguring in your DbContext class or in the AddDbContext method when setting up services. Microsoft.Data.Entity.Storage.DataStoreSelector.SelectDataStore(ServiceProviderSource providerSource) 在ConfigureServices(IServiceCollection服务)中,我试图在lambda中为我的DbContext指定DbContextOptions。 码: services.AddEntityFramework(Configuration) .AddSqlServer() .AddDbContext( options => options.UseSqlServer(Configuration.Get(“Data:DefaultConnection:ConnectionString”)) ); 在我的DbContext中,我有一个构造函数,它将选项发送到base,代码: public MyContext(DbContextOptions options) : base(options) { } […]

asp.net核心mvc密码validation器

在asp.net核心MVC中自定义密码validation规则的简便方法是什么? 问题就像有人在这里如何在ASP.Net MVC Identity 2中更改密码validation? 唯一的区别是我在Visual Studio 2015中使用asp.net CORE MVC (最新版本)。我想删除所有密码validation规则。 项目中没有ApplicationUserManager类,我也不确定是否可以在Startup.cs文件中自定义UserManagervalidation规则。

UseSqlServer方法缺少MVC 6

我正在尝试在MVC 6中实现Entity Framework 7,并在此页面上说它要做 services.AddEntityFramework() .AddSqlServer() .AddDbContext(options => options.UseSqlServer(Configuration[“Data:DefaultConnection:ConnectionString”])); 但对我来说, UseSqlServer方法不可见? 有谁知道如何让它可见? 或者这是配置entity framework的旧方法? 我的startup.cs文件看起来像这样 using FluentValidation; using Microsoft.AspNet.Builder; using Microsoft.AspNet.Hosting; using Microsoft.Framework.ConfigurationModel; using Microsoft.Framework.DependencyInjection; namespace me.namespace.project { public class Startup { public static IConfiguration Configuration { get; set; } public Startup(IHostingEnvironment env) { // Setup configuration sources. Configuration = new Configuration() .AddJsonFile(“config.json”) .AddEnvironmentVariables(); } […]