Шаблон asp.net: значение не может быть нулевым.Имя параметра: ключ - PullRequest
0 голосов
/ 30 декабря 2018

Я пытаюсь создать запись в дБ, но я принимаю эту ошибку ниже:

its image of error page buy may not work

Это ошибка

 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>

1 Ответ

0 голосов
/ 30 декабря 2018

Обновите версию ABP до v4.0.1 или выше.

Это происходит из-за ContainsKey, когда вызывается с null, если аутентификация cookie не используется.

Ошибка произошла вAbpAutoValidateAntiforgeryTokenAuthorizationFilter и AbpValidateAntiforgeryTokenAuthorizationFilter.

Соответствующий запрос на извлечение: https://github.com/aspnetboilerplate/aspnetboilerplate/pull/3986

...