C# 模型值为空
我试图发送一些表单值,但它们似乎为空。我不明白为什么。我确信这是一个简单的解决方案,或者只是我错过了一些东西。 谁能给我指一下正确的方向吗C# 模型值为空,c#,asp.net-core,razor-pages,C#,Asp.net Core,Razor Pages,我试图发送一些表单值,但它们似乎为空。我不明白为什么。我确信这是一个简单的解决方案,或者只是我错过了一些东西。 谁能给我指一下正确的方向吗 @page @model WebApp.Pages.LoginModel @{ ViewBag.Title = "Login"; } <h2> Logins </h2> @using (Html.BeginForm()) { @Html.ValidationSummary(true) <div
@page
@model WebApp.Pages.LoginModel
@{
ViewBag.Title = "Login";
}
<h2>
Logins
</h2>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<div style="border: solid 1px #ccc; padding: 30px 0 30px 30px; border-radius: 5px;
width: 325px; margin: auto; display: table;">
<table>
<tr>
<td valign="top">
@Html.LabelFor(model => model.UserName)
</td>
<td>
@Html.EditorFor(model => model.UserName)
<div style="height: 20px;">
@Html.ValidationMessageFor(model => model.UserName)
</div>
</td>
</tr>
<tr>
<td valign="top">
@Html.LabelFor(model => model.Password)
</td>
<td>
@Html.EditorFor(model => model.Password)
<div style="height: 20px;">
@Html.ValidationMessageFor(model => model.Password)
</div>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Login" />
</td>
</tr>
</table>
</div>
}
}[BindProperty]属性在Razor页面中用于将页面中的值绑定到页面模型属性。 尝试以下更改
[BindProperty]
[Required(ErrorMessage = "Please enter user name.")]
[Display(Name = "User Name")]
public string UserName { get; set; }
[BindProperty]
[Required(ErrorMessage = "Please enter password.")]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
从ASP.NET Core的2.1版开始,您可以向PageModel类添加新的[BindProperties]属性,而不是将[BindPRoperty]应用于单个属性,这将导致PageModel中的所有公共属性参与模型绑定:
[BindProperties]
public class LoginModel : PageModel
{
[Required(ErrorMessage = "Please enter user name.")]
[Display(Name = "User Name")]
public string UserName { get; set; }
[Required(ErrorMessage = "Please enter password.")]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
尝试将
[BindProperty]
注释添加到您的属性中。并且,为了您自己的利益,您应该删除所有这些ö
,您可能会在任何时候使用以下字符出现奇怪的错误:those@CamiloTerevintoC#支持unicode,因此人们可以用他们喜欢的任何语言(或表情符号)编写代码。如果芬兰的人想用芬兰语写代码的话,这应该是完全可以的。@tigerswithguitars应该是这样的。当一些队友使用accentsSo用西班牙语编写代码时,我遇到了一些问题。您的modelstate是有效的,但值为null?这会有一些帮助,但不是答案
[BindProperty]
[Required(ErrorMessage = "Please enter user name.")]
[Display(Name = "User Name")]
public string UserName { get; set; }
[BindProperty]
[Required(ErrorMessage = "Please enter password.")]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[BindProperties]
public class LoginModel : PageModel
{
[Required(ErrorMessage = "Please enter user name.")]
[Display(Name = "User Name")]
public string UserName { get; set; }
[Required(ErrorMessage = "Please enter password.")]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }