Даже при использовании ненавязчивой библиотеки ajax скрипты, загруженные на эту страницу из файла _Login.cshtml, загружаются при отправке формы, и я не знаю, как это предотвратить. Еще более странный эффект - когда к любому элементу применяется событие onclick, когда форма отправляется, сценарий выполняется по числу нажатий на элемент.
Редактировать
При дальнейшем тестировании я понял, что ненавязчивая библиотека ajax в основном перезагружает всю страницу внутри элемента UpdateTargetId, что ОЧЕНЬ контрпродуктивно. Это означает, что если я отправляю страницу 4 раза, она впоследствии загружается внутри каждого элемента UpdateTargetId на каждой странице внутри страницы. Что я делаю неправильно? Это то, что он должен делать?
@using MinervaMvc.App_Data
@model MinervaMvc.Models.LogOnModel
@{
ViewBag.Title = "Home Page";
Layout = "~/Views/Shared/_Login.cshtml";
}
<div id="loginContainer">
<h2>
Login</h2>
<div id="loginForm">
@{Html.EnableClientValidation();}
@using (Ajax.BeginForm(new AjaxOptions { HttpMethod = "POST" }))
{
<table style="margin: 0px auto;">
<tr>
<td>
@Html.LabelFor(m => m.ServerName, new { @class = "label" })
</td>
<td>
@Html.TextBoxFor(m => m.ServerName, new { @class = "text" })
</td>
</tr>
<tr>
<td align='right'>
@Html.LabelFor(m => m.UserName, new { @class = "label" })
</td>
<td>
@Html.TextBoxFor(m => m.UserName, new { @class = "text" })
</td>
</tr>
<tr>
<td align='right'>
@Html.LabelFor(m => m.Password, new { @class = "label" })
</td>
<td>
@Html.PasswordFor(m => m.Password, new { @class = "text" })
</td>
</tr>
<tr>
<td align="right" colspan="2">
<div id='errorShade' class='shade'>
<div id='errorBox'>Password or Username is incorrect. Please try again.</div>
</div>
</td>
</tr>
<tr>
<td align="right" colspan="2">
<div id='loginShade' class='shade'>
<input type='submit' class='button' id='btn' value='Login' /></div>
</td>
</tr>
</table>
<div id='ajaxUpdate' style='position: absolute; visibility: hidden;'>
@{if (ViewBag.Failed != null && ViewBag.Failed)
{
<script type="text/javascript">
pulseState.stopPluse = true;
hideShowLogin(true, 'errorShade', 20);
hideShowLogin(false, 'loginShade', 33);
</script>
}}
</div>
}
</div>
</div>
<br />
<div id="copywrite">
@{ Html.RenderPartial("Copyright"); }
</div>