Можете ли вы попробовать это.
Примечание: ваше свойство класса модели совпадает с внутренним именем элемента управления
Как в примере
Имя пользователя Пароль
В Например, вы отправляете запрос, используя ajax
, но ваш тип кнопки - submit
, когда вы нажимаете кнопку, на сервер поступают два запроса, один - ajax
, а второй - form
.
Пожалуйста см. этот пример.
<div class="login-container">
<div class="row">
<div class=" col-md-12 col-sm-12 col-12 login-form-1">
<h2>Login </h2>
<p>Log into your account</p>
@using (Html.BeginForm("Login", "Account", FormMethod.Post,new {id="LoginFrom" }))
{
<div id="alertmessage">
<div class=" alert alert-danger">
<span>
Email or Password is incorrect
</span>
</div>
</div>
@Html.AntiForgeryToken()
<div class="form-group col-md-12 col-sm-12 col-12">
<input id="Email" type="text" class="form-control" placeholder="Your Email *" value="" name="Email" />
</div>
<div class="form-group col-md-12 col-sm-12 col-12 ">
<input id="Password" type="password" class="form-control" placeholder="Your Password *" value="" name="Password" />
</div>
<div class="form-group col-md-12 col-sm-12 col-12">
<input type="button" class="btnSubmit" value="Login now" id="logbut" />
</div>
<div class="form-group col-md-6 col-sm-6 col-6">
<a href="#" class="ForgetPwd">Forget Password?</a>
</div>
}
</div>
</div>
</div>
Jquery Код
$(document).ready(function () {
$("#alertmessage").hide()
$("#logbut").click(function (e) {
$.ajax({
url: '@Url.Action("Login","Account")',
type: "POST",
data: $("#LoginFrom").serialize(),
success: function (result) {
if (result == "Fail") {
$("#alertmessage").show()
}
else {
window.location.href = "/Account/MainAccount";
}
},
})
})
})
Для более подробной информации -> проверьте эту ссылку https://www.w3schools.com/jquery/ajax_serialize.asp