Эта проблема, которая у меня возникла, даже не связана с синхронизацией, где я ожидаю завершения запроса Ajax. У меня проблема, когда пост Ajax даже не запускается, когда IE запускается WaitN. Вот мой сценарий:
$(document).ready(function () {
$("form select").change(function () {
$(this).parents().filter("form").trigger("submit");
});
$("form#theForm").submit(function (event) {
event.preventDefault();
hijack(this, UpdateList, "html");
});
function hijack(form, callback, format) {
$.ajax({
url: form.action,
type: form.method,
dataType: format,
data: $(form).serialize(),
success: callback
});
}
function UpdateList(result) {
$("#results").html(result);
}
Вот HTML:
<% using (Html.BeginForm("ControllerName", "ActionName", FormMethod.Post, new { id="theForm" })) { %>
<table width="100%">
<tr>
<td align="left">
</td>
<td align="right">
Fiscal Year & Period: <%= Html.DropDownList("period", Model.FiscalPeriodSelectList)%>
</td>
</tr>
</table>
<% } %>
<div id="results">
<% Html.RenderPartial("Setup", Model.ViewModel); %>
</div>
Абсолютно ничего не происходит, когда в списке выбора выбрано другое значение. Я даже оставил браузер открытым после выполнения теста, чтобы я мог вручную изменить список выбора. Тем не менее - ничего не происходит. Однако, когда я запускаю приложение через VS, сообщение ajax в списке выбора работает отлично. Есть что-то, что я не настраиваю должным образом?
Редактировать: может быть важно отметить, что я вхожу в систему с использованием обычной аутентификации, как при ручном запуске приложения mvc, так и при его запуске NUnit. После дальнейшей проверки я понял, что все, кроме обратного вызова AJAX, выполняется, и когда я фиксирую ошибку AJAX в «предупреждении», мне показывается «Несанкционированный». Я все еще не уверен, как я могу исправить свою проблему и почему я получаю Unauthorized, когда я запускаю свои тесты WatiN из NUnit, но я не получаю его, когда использую приложение mvc вручную.