Tag: asp.net core mvc

ASP.NET核心本地化 – 不从资源文件返回值,仅返回Name

我正在尝试实现本地化,但是在运行时只返回Name。 Startup.cs public void ConfigureServices(IServiceCollection services) { services.AddLocalization(options => options.ResourcesPath = “Resources”); services.AddMvc() .AddViewLocalization() .AddDataAnnotationsLocalization(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { ….. List supportedCultures = new List { new CultureInfo(“no”), new CultureInfo(“en”) }; app.UseRequestLocalization(new RequestLocalizationOptions { DefaultRequestCulture = new RequestCulture(“no”), SupportedCultures = supportedCultures, SupportedUICultures = supportedCultures }); app.UseStaticFiles(); app.UseMvc(routes => { […]

EmailAttribute未在ASP.NET Core的ViewModel中正确validation

这是位于我的viewmodel中的字段: [Required(ErrorMessage = “Email is missing.”), EmailAddress(ErrorMessage = “Email is not valid.”)] public string Email { get; set; } ( EmailAddress来自EmailAddressAttribute.EmailAddressAttribute()类型) 这是HTML的相关部分: EMAIL 当我在电子邮件文本框中输入myemail时,它会说 电子邮件无效 但是,在键入myemail@email ,视图模型将会将其视为正确(仅在前端)。 public async Task Register([FromForm]VisitViewModel vm) 像这样的ModelState转换会使ModelState无效并拒绝电子邮件,因此该部分是可以的。 根据这个答案 ,前端应该表明这是无效的 谁能解释一下这里发生了什么? 我绝对亏本。

无法在web api控制器中遇到断点

当我尝试调试此代码时: // POST: api/Events [HttpPost] public async Task PostEvent([FromBody] object savedEvent) { Event addedEvent = JsonConvert.DeserializeObject(savedEvent.ToString()); if (!ModelState.IsValid) { return BadRequest(ModelState); } 无法达到这条线: Event addedEvent = JsonConvert.DeserializeObject(savedEvent.ToString()); Debuger反应就像我点击继续但代码过去没有执行。 我真的很困惑。 谢谢你的帮助。

使用RequireHttpsAttribute ASP.NET Core的HTTP错误310 ERR_TOO_MANY_REDIRECTS

我正在使用MVC在ASP.NET核心上构建一个应用程序。 我也在我的应用程序中使用Identity和Entity 7框架。 我正在Microsoft Azure上运行应用程序,该应用程序应附带HTTPS证书。 我正在使用此代码在我的Startup.cs中启用HTTPS services.AddMvc(options => { #if !DEBUG options.Filters.Add(new RequireHttpsAttribute()); #endif }); 我的问题是,当我访问网络应用程序时,我得到一个310 HTTP ERR_TOO_MANY_REDIRECTS响应。 我已经尝试清除我的cookie并将Web应用程序重新发布到Azure,但这些都没有成功。 当我禁用上面的代码时,我的应用程序在Azure上运行。 当我在浏览器中手动键入https://时,我得到一个安全的HTTPS连接。

修改CookieAuthenticationOptions LoginPath OnRedirectToReturnUrl事件

我在MVC 6 ASP.NET 5项目中进行了以下设置: 配置方法中的Startup.cs: app.UseCookieAuthentication(options => { options.AuthenticationScheme = “Cookie”; options.LoginPath = new PathString(“//account/signin/”); options.AccessDeniedPath = new PathString(“//account/unauthorised/”); options.AutomaticAuthenticate = true; options.AutomaticChallenge = true; options.Events = new CookieAuthenticationEvents { OnRedirectToReturnUrl = MyClass.RedirectToReturnUrlAsync }; }); 活动课程: public static class MyClass { public static async Task RedirectToReturnUrlAsync(CookieRedirectContext context) { context.Options.LoginPath = new PathString(“//account/signin”); } } 让我们说用户转到以下url: […]

ASP NET 5使用单独程序集中的View组件进行本地化

我有一个“类库”项目,上面有一些“ViewComponents”,我已经让它们在我的“MVC 6 Web应用程序”上运行了( 感谢这个问题 ),但现在我正在尝试将语言资源(本地化)添加到我的“ViewComponents”。 关于如何做到这一点的任何建议? 我已经在我的“MVC 6 Web应用程序”上添加了必要的行到启动文件: startup.cs […] services.AddMvc() .AddViewLocalization(options => options.ResourcesPath = “Resources”); […] app.UseRequestLocalization(new RequestCulture(new CultureInfo(“es-MX”))); 我还在我的“类库”视图中添加了依赖项: 查看/共享/组件/页眉/ foo.cshtml @using Microsoft.AspNet.Mvc.Localization @inject IViewLocalizer LocString @LocString[“HelloWorld”] 并在我的“类库”项目中创建了Resource文件夹和文件: -Resources -Views.Shared.Components.Header.foo.cshtml.resx 但我得到的只是关键字“HelloWorld”而不是本地化资源“Hola mundo”的名称 总之我错过了什么吗? 有没有人知道在“mvc 6 web应用程序”中“类库”的“视图组件”中使用本地化资源的方法 笔记: 我正在使用mvc 6 RC1 来自非ViewComponents的其他视图的资源正常工作。 谢谢!

EF 7(核心)。 像AddTransient一样创建DBContext

根据文档,我配置DbContext如下面的DI在范围内注册它(每个http请求) services.AddEntityFramework() .AddSqlServer() .AddDbContext(options => { options.UseSqlServer(Configuration[“Data:DefaultConnection:ConnectionString”]); } ); 当我尝试在另一个线程中访问它时出现问题。 public class HomeController : Controller { private readonly DBData _context; public HomeController(DBData context) { _context = context; } public IActionResult StartInBackground() { Task.Run(() => { Thread.Sleep(3000); //System.ObjectDisposedException here var res = _context.Users.FirstOrDefault(x => x.Id == 1); }); return View(); } } 我想为每个调用配置DbContext创建(AddTransition)。 它可以让我编写下一个代码 public void […]

ASP.NET 5中System.Web.Mvc.Html.InputExtensions的等价物是什么?

ASP.NET 4中使用的ASP.NET 5等效的System.Web.Mvc.Html.InputExtensions是什么? 见下面的例子: public static class CustomHelpers { // Submit Button Helper public static MvcHtmlString SubmitButton(this HtmlHelper helper, string buttonText) { string str = “”; return new MvcHtmlString(str); } // Readonly Strongly-Typed TextBox Helper public static MvcHtmlString TextBoxFor(this HtmlHelper htmlHelper, Expression<Func> expression, bool isReadonly) { MvcHtmlString html = default(MvcHtmlString); if (isReadonly) { html = […]

未找到Visual Studio 2015上的ASP.NET 5 addMvc方法

我正在关注本教程: http : //www.asp.net/vnext/overview/aspnet-vnext/create-a-web-api-with-mvc-6来设置web api,我还没有把它做得很远。 一旦我添加了行: services.addMvc(); 我有一个例外,说找不到这个方法。 我在网上搜索并在这里找到了一个单独的问题/答案: http : //forums.asp.net/t/2026087.aspx但这没有帮助。 我的startup.cs看起来像这样: public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } public void Configure(IApplicationBuilder app) { app.UseMvc(); app.UseWelcomePage(); } 还有我的project.json: { “webroot”: “wwwroot”, “version”: “1.0.0-*”, “exclude”: [ “wwwroot” ], “packExclude”: [ “node_modules”, “bower_components”, “**.kproj”, “**.user”, “**.vspscc” ], “dependencies”: { “Microsoft.AspNet.Server.IIS”: “1.0.0-beta2”, “Microsoft.AspNet.Diagnostics”: “1.0.0-beta1”, “Microsoft.AspNet.Mvc”: “6.0.0-beta1” }, […]

在ASP .NET 5中默认阻止匿名访问

我的团队和我正在ASP .NET 5中启动一个新的网站项目,我正在尝试建立我们的用户身份validation和授权策略的基础。 到目前为止,我已经设法使用[Authorize]和[AllowAnonymous]属性来有选择地定义授权策略控制器或操作。 我仍在努力实现的一件事是定义默认授权策略。 基本上,我希望每个控制器和操作的行为都像默认情况下具有[Authorize]属性一样,这样只有匿名用户才能访问专门标记为[AllowAnonymous]的操作。 否则,我们预计,在某些时候,有人会忘记向其控制器添加[Authorize]属性并将漏洞引入webapp。 我的理解是,通过在FilterConfig.cs中添加以下语句,可以在以前版本的ASP .NET中实现我想要做的事情: filters.Add(new AuthorizeAttribute()); …除了在MVC 6中不再存在FilterConfig.cs。根据如何使用mvc 6注册全局filter,asp.net 5我现在可以使用以下命令访问全局filter列表: services.ConfigureMvc(options => { options.Filters.Add(new YouGlobalActionFilter()); } …尝试过,看起来很好,但现在它是我无法找到的AuthorizeAttributefilter。 出于实验目的,我试图手工创建一个与AuthorizeAttributefilter等效的filter,并提出以下建议: public class LoginFilter: AuthorizeFilter { public LoginFilter(): base(new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build()) { } public override Task OnAuthorizationAsync(Microsoft.AspNet.Mvc.AuthorizationContext context) { if(!context.HttpContext.User.Identity.IsAuthenticated && context.ActionDescriptor is ControllerActionDescriptor) { var action = context.ActionDescriptor as ControllerActionDescriptor; if(!AcceptAnonymous(action.ControllerTypeInfo) && !AcceptAnonymous(action.MethodInfo)) […]