asp.net 样板文件:值不能为空。参数名称:键
asp.net boilerplate: value cannot be null. Paramater name: key
我正在尝试在数据库中创建一条记录,但我在下面遇到了这个错误。
这是错误
ArgumentNullException: Value cannot be null.
Parameter name: key
System.Collections.Generic.Dictionary<TKey, TValue>.FindEntry(TKey key)
Microsoft.AspNetCore.Http.Internal.RequestCookieCollection.ContainsKey(string key)
Abp.AspNetCore.Mvc.Antiforgery.AbpAutoValidateAntiforgeryTokenAuthorizationFilter.ShouldValidate(AuthorizationFilterContext context) in AbpAutoValidateAntiforgeryTokenAuthorizationFilter.cs
Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.ValidateAntiforgeryTokenAuthorizationFilter.OnAuthorizationAsync(AuthorizationFilterContext context)
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync()
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync()
Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext)
Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext)
Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
这是我的控制器:
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Index(CreateUserInput input)
{
if (HttpContext.Request.Cookies.ContainsKey(".AspNetCore.Antiforgery."))
{
_userAppService.Create(input);
}
return RedirectToAction("Index","Home");
}
这是我的 html 页面:
@model DutyV2.Users.DTO.CreateUserInput
@{
ViewData["Title"] = "Index";
}
<h2>Index</h2>
<form asp-action="Index" method="post">
<div class="input-group">
<label class="control-label" asp-for="Name"></label>
<input asp-for="Name" class="form-control" type="text" />
</div>
<div class="input-group">
<label class="control-label" asp-for="Email"></label>
<input asp-for="Email" class="form-control" type="email" />
</div>
<input type="submit" value="Create"/>
</form>
更新您的ABP版本到v4.0.1或以上。
这是由于 ContainsKey
在未使用 cookie 身份验证时使用 null
调用。
错误发生在 AbpAutoValidateAntiforgeryTokenAuthorizationFilter
和 AbpValidateAntiforgeryTokenAuthorizationFilter
。
相关拉取请求:https://github.com/aspnetboilerplate/aspnetboilerplate/pull/3986
我正在尝试在数据库中创建一条记录,但我在下面遇到了这个错误。
这是错误
ArgumentNullException: Value cannot be null.
Parameter name: key
System.Collections.Generic.Dictionary<TKey, TValue>.FindEntry(TKey key)
Microsoft.AspNetCore.Http.Internal.RequestCookieCollection.ContainsKey(string key)
Abp.AspNetCore.Mvc.Antiforgery.AbpAutoValidateAntiforgeryTokenAuthorizationFilter.ShouldValidate(AuthorizationFilterContext context) in AbpAutoValidateAntiforgeryTokenAuthorizationFilter.cs
Microsoft.AspNetCore.Mvc.ViewFeatures.Internal.ValidateAntiforgeryTokenAuthorizationFilter.OnAuthorizationAsync(AuthorizationFilterContext context)
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync()
Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync()
Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext)
Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext)
Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
这是我的控制器:
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Index(CreateUserInput input)
{
if (HttpContext.Request.Cookies.ContainsKey(".AspNetCore.Antiforgery."))
{
_userAppService.Create(input);
}
return RedirectToAction("Index","Home");
}
这是我的 html 页面:
@model DutyV2.Users.DTO.CreateUserInput
@{
ViewData["Title"] = "Index";
}
<h2>Index</h2>
<form asp-action="Index" method="post">
<div class="input-group">
<label class="control-label" asp-for="Name"></label>
<input asp-for="Name" class="form-control" type="text" />
</div>
<div class="input-group">
<label class="control-label" asp-for="Email"></label>
<input asp-for="Email" class="form-control" type="email" />
</div>
<input type="submit" value="Create"/>
</form>
更新您的ABP版本到v4.0.1或以上。
这是由于 ContainsKey
在未使用 cookie 身份验证时使用 null
调用。
错误发生在 AbpAutoValidateAntiforgeryTokenAuthorizationFilter
和 AbpValidateAntiforgeryTokenAuthorizationFilter
。
相关拉取请求:https://github.com/aspnetboilerplate/aspnetboilerplate/pull/3986