Я бы не удалял «форму», как то, что вы делали в своем коде, - вместо этого дополните ее jQuery / AJAX / и т. Д. Таким образом, в случае, если javascript отключен, ваша функциональность входа будет работать.
<div id="LoginArea">
<div class="message"><%:Html.ValidationSummary(true)%></div>
<% using (Html.BeginForm("/MyController/MyLogin", FormMethod.Post,
new { id = "LoginForm", name = "LoginForm" })) { %>
<input type="text" id="username" />
<!-- and other inputs here -->
<input type="submit" id="button" value="Login" >
<%}%>
</div>
Затем создайте перехватчик отправки с помощью jQuery:
<script type="text/javascript">
$(document).ready(function () {
$("#LoginForm").submit(function () {
var f = $("#LoginForm");
var action = f.attr("action");
var serializedForm = f.serialize();
$.ajax({
type: 'POST',
url: action,
data: serializedForm,
success: function (data, textStatus, request) {
if (data.status == 'SUCCESS') {
window.location = '/successfullogin';
}
else {
$("#LoginArea").html(data);
$("#LoginArea").show(speed);
}
}
});
return false;
});
});
</script>
Затем выполните обработку ошибок на стороне сервера как минимум (поэтому, если javascript отключен, проверка будет по-прежнему на месте), а затем вы можете добавить соответствующую сторону клиента, если хотите.