Hy, Моя страница регистрации не сохраняет входные данные в базу. Вот мой html код
@page
@model PWAPI.Model.RegistrationModel.Registration
@{
ViewData["Title"] = "User Registration";
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width"/>
<title>Registration</title>
</head>
<body>
<h3>Registration</h3>
<form method="post" asp-page="RegistrationPage/Registration"></form>
<div asp-validation-summary="All" class="text-danger"></div>
<table>
<tr>
<td>Username</td>
<td>
<input asp-for="@Model.Username" />
<span asp-validation-for="Username" class="text-danger"></span>
</td>
</tr>
<tr>
<td>Email</td>
<td>
<input asp-for="@Model.Email" />
<span asp-validation-for="Email" class="text-danger"></span>
</td>
</tr>
<tr>
<td>Password</td>
<td>
<input asp-for="@Model.Password" />
<span asp-validation-for="Password" class="text-danger"></span>
</td>
</tr>
<tr>
<td>Confrim Password</td>
<td>
<input asp-for="@Model.ConfirmPassword" />
<span asp-validation-for="ConfirmPassword" class="text-danger"></span>
</td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" value="Save"/>
<br />
<a href="/LoginPage/Login">Login</a>
</td>
</tr>
</table>
</body>
Он выглядит так Моя страница регистрации
Моя модель регистрации
[Table("Registration")]
public class Registration
{
[Required]
public string Username { get; set; }
[Required]
[EmailAddress]
public string Email { get; set; }
[Required]
[DataType(DataType.Password)]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name ="Confirm Password")]
[Compare("Password", ErrorMessage = "Password and Confrim Password do not match.")]
public string ConfirmPassword { get; set; }
}
То, что я пытаюсь сделать после, и я думаю, что здесь я делаю что-то не так.
public class RegistrationModel : PageModel
{
private Registration registration { get; set; }
public IActionResult OnPost()
{
if(ModelState.IsValid)
{
registration = new Registration();
string connection = ConfigurationManager.ConnectionStrings["PWAPI"].ConnectionString;
SqlConnection con = new SqlConnection(connection);
con.Open();
SqlCommand com = new SqlCommand("sp_get_registration", con)
{
CommandType = CommandType.StoredProcedure
};
com.Parameters.AddWithValue("@Email", registration.Email);
com.Parameters.AddWithValue("@Password", registration.Password);
com.Parameters.AddWithValue("@ConfirmPassword", registration.ConfirmPassword);
com.ExecuteNonQuery();
con.Close();
return RedirectToPage("/LoginPage/Login");
}
else
{
return new RedirectToPageResult("/RegistrationPage/Registration");
}
}
}
Когда я нажимаю «сохранить», ничего не происходит. Страница даже не обновляется sh, и никакие входные данные не сохраняются в моей базе данных. кроме того, когда я нажимаю кнопку «Сохранить», ничего не написав, ошибки исключения не возникает. РЕДАКТИРОВАТЬ: моя хранимая процедура РЕДАКТИРОВАТЬ 2: Моя база данных также имеет идентификатор пользователя, но он автоматически увеличивается.
CREATE Procedure sp_get_registration
@Email varchar(50),
@Password nvarchar(50),
@ConfirmPassword nvarchar(50)
as
Insert into Registration(Email, Password, ConfirmPassword)
Values (@Email, @Password, @ConfirmPassword)