本文介绍了ArgumentNullException:值不能为null.参数名称:viewData的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个简单的登录页面,如下所示:
I have simple login page like this:
Login.cshtml
Login.cshtml
@page @model GDPR.Views.Account.LoginModel @{ } @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers <html> <body> <p>Login </p> <form method="post"> <div asp-validation-summary="All"></div> Username: <input asp-for="loginData.Username" value="username" /><br /> Password: <input asp-for="loginData.Password" value="password" /><br /> <br /> <input type="submit" value="Login" /> @Html.AntiForgeryToken() </form> </body> </html>
和后面的代码:
public class LoginModel : PageModel { [BindProperty] // Bind on Post public LoginData loginData { get; set; } public async Task<IActionResult> OnPostAsync() { if (ModelState.IsValid) { ....... await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal); return RedirectToPage("/Home/Index"); } else { ModelState.AddModelError("", "username or password is blank"); return Page(); } } public class LoginData { [Required] public string Username { get; set; } [Required, DataType(DataType.Password)] public string Password { get; set; } } }运行该应用程序时,出现错误:ArgumentNullException值不能为null,参数名称:viewData.
When I run the app I get an error: ArgumentNullException value cannot be null, param name : viewData.
该错误的原因可能是什么?
What could be the reason for that error?
推荐答案您在第一行上的@page为null,这是导致错误的原因.删除@page语句或使用它来定义要显示的页面.
Your @page on the first line is null which is what's causing the error. Either remove the @page statement or use it to define the page to be displayed.
更多推荐
ArgumentNullException:值不能为null.参数名称:viewData
发布评论