Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 模型值为空_C#_Asp.net Core_Razor Pages - Fatal编程技术网

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; }