Форма Ajax не работает после обновления до Windows 10
У меня проблема с моим веб-приложением. Проект был создан в MVC 4. Несколько дней назад я обновил свою операционную систему до Windows 10. После этого во всех представлениях, где я использую форму ajax, он отправляет модель как нулевое значение, поэтому я получаю исключение NullReferenceException в контроллерах. До обновления все работало отлично. Стандартные почтовые действия с использованием классической формы работают правильно. Также работает ajax-запросы, используемые через jQuery. Я полностью застрял.
У кого-нибудь была идея как это исправить?
РЕДАКТИРОВАТЬ
Я создал пустое приложение mvc для тестирования и подготовил простую форму ajax, и она работает. До сих пор не знаю, в чем причина приведенного ниже примера. Все необходимые скрипты предоставляются для просмотра макета (jquery, ajax и т. Д.).
Ниже приведен только один компонент всего представления. Это слишком большой, чтобы разместить его здесь. Он работал отлично, и после того, как я обновил окна, он перестал работать (возможно, я сделал что-то еще, но я не могу вернуться к состоянию раньше).
модель
public class UniversityModel
{
public UniversityDto UniversityDto { get; set; }
public IList<UniversityDto> UniversityDtos { get; set; }
public UniversityModel()
{
UniversityDtos = new List<UniversityDto>();
}
}
public class UniversityDto
{
public long Id { get; set; }
[Required]
public string ShortName { get; set; }
[Required]
public string LongName { get; set; }
}
контроллер:
[HttpPost]
public PartialViewResult AddUniversity([Bind(Prefix = "UniversityDto")]UniversityDto model)
{
UniversityModel universityModel = new UniversityModel();
using (ISession session = (ISession)_unitOfWork.GetBaseSession())
{
using (Infrastructure.Data.Interfaces.ITransaction transaction = _unitOfWork.BeginTransaction())
{
if (ModelState.IsValid)
{
model.ShortName = model.ShortName.Trim();
model.LongName = model.LongName.Trim();
var entity = Mapper.Map<University>(model);
session.Save(entity);
transaction.Commit();
universityModel = CompleteUniversityModel(session);
return PartialView("UniversityPartial", universityModel);
}
else
{
universityModel = CompleteUniversityModel(session, model);
return PartialView("UniversityPartial", universityModel);
}
}
}
}
Вид (я пропустил раздел сценария и мастер-вид)
@model ThesisNavigator.Presentation.WebFrontend.Models.StructureController.UniversityModel
@using (Ajax.BeginForm("AddUniversity", "Structure", new AjaxOptions()
{
HttpMethod = "POST",
UpdateTargetId = "UniversityPartialContainer",
LoadingElementId = "loadingUniversity",
OnBegin = "onBeginAddUniversity",
OnSuccess = "onSuccessAddUniversity",
OnFailure = "onFailureAddUniversity"
},
new { @class = "form-inline", @id = "formAddUniversity" }))
{
<div class="form-group">
@Html.LabelFor(m => m.UniversityDto.ShortName)
@Html.TextBoxFor(m => m.UniversityDto.ShortName, new { @class = "form-control" })
</div>
<div class="form-group">
@Html.LabelFor(m => m.UniversityDto.LongName)
@Html.TextBoxFor(m => m.UniversityDto.LongName, new { @class = "form-control" })
</div>
<button type="submit" class="btn btn-default">Dodaj</button>
<div class="center">
@Html.ValidationSummary("", new { @id = "formAddUniversityValidationSummary", @class = "center", @style = "display:none" })
</div>
}
<div id="universityList">
@{ Html.RenderPartial("UniversityListPartial", Model.UniversityDtos); }
</div>