Привязка модели страницы ASP.NET Razor не работает

У меня есть следующая форма на бритвенной странице:

<form method="post">
    <table>
        <tr>
            <td style="padding-bottom: 10px;" class="login-entry">User Name</td>
            <td style="padding-bottom: 10px;"><input type="text" asp-for="LoginName" class="logins" autocomplete="off" /></td>
        </tr>
        <tr>
            <td style="padding-bottom: 10px;" class="login-entry">Password</td>
            <td style="padding-bottom: 10px;"><input type="password" asp-for="Password" class="logins" /></td>
        </tr>
        <tr>
            <td colspan="2" style="text-align:right;"><input type="submit" value="login" /></td>
        </tr>
    </table>
</form>

Затем в моей PageModel у меня есть два свойства и OnPostAsync:

public string LoginName { get; set; }

 public string Password { get; set; }

 public async Task<IActionResult> OnPostAsync()
{
    // Login code here
}

Проблема в том, что когда я отлаживаю страницу, ввожу имя пользователя и пароль и нажимаю кнопку входа в систему, внутри метода OnPostAsync свойства LoginName и Password имеют значение null.

Есть ли у кого-нибудь идеи, почему это не работает? Или, поскольку я новичок в страницах Razor, по крайней мере, способ отслеживать подобные вещи, когда они не работают? Любая помощь приветствуется.


person hermes the goat    schedule 24.11.2020    source источник


Ответы (1)


Вы можете добавить этот атрибут [BindProperty], например:

    [BindProperty]
    public string LoginName { get; set; }
    [BindProperty]
    public string Password { get; set; }

    public async Task<IActionResult> OnPostAsync()
    {
        // Login code here
    }

Результат:  введите описание изображения здесь

person Karney.    schedule 25.11.2020
comment
Спасибо за ответ! - person hermes the goat; 25.11.2020