#c# #asp.net-core #asp.net-core-razor-pages
#c# #asp.net-core #asp.net-core-razor-pages
Вопрос:
У меня есть следующая форма на странице 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 равны нулю.
У кого-нибудь есть идеи о том, почему это не работает? Или, поскольку я новичок в Razor pages, по крайней мере, способ отслеживания подобных вещей, когда они не работают? Любая помощь будет высоко оценена.
Ответ №1:
Вы можете добавить этот атрибут [BindProperty]
следующим образом:
[BindProperty]
public string LoginName { get; set; }
[BindProperty]
public string Password { get; set; }
public async Task<IActionResult> OnPostAsync()
{
// Login code here
}
Комментарии:
1. Спасибо за ответ!