У меня есть проект MVC4, в котором я использовал NuGet для установки jQuery 3.1.0 и Microsoft.jQuery.Unobtrusive.Ajax 3.2.3. Мой комплект такой:
bundles.Add(new ScriptBundle("~/bundles/scripts").Include(
"~/Scripts/jquery-3.1.0.min.js",
"~/Scripts/jquery.unobtrusive-ajax.min.js",
"~/Scripts/jquery.hoverIntent.minified.js",
"~/Scripts/newScript.js",
"~/Scripts/nav.js"
));
У меня есть представление, содержащее такой блок Ajax.BeginForm:
@using (Ajax.BeginForm("ValidateBASFID", new AjaxOptions { UpdateTargetId = "ValidateBASFIDError", InsertionMode = InsertionMode.Replace }))
{
<label class="required">BASF ID</label>@Html.ValidationMessageFor(model => model.BASFID, "", new { @class = "text-danger" })
@Html.TextBoxFor(model => model.BASFID, new { style = "width: 50px; margin-right:20px; float:left;", @class = "form-control" })
<input type="submit" value="Validate with BASF ID" class="smallButton" style="float:left;" />
<div id="ValidateBASFIDError" class="validationError text-danger"></div>
<div style="clear:both;"></div>
}
Этот блок указывает на такое действие контроллера:
public ActionResult ValidateBASFID(string BASFID)
{
Models.Repositories.SectionRepository _repository = new Models.Repositories.SectionRepository();
MemberVM Member = _repository.ValidateBASFID(BASFID);
if (Member != null)
{
Member.SaveMemberInfo();
return RedirectToAction("Sections", new
{
SectionSignupMasterID = Member.SectionSignupMasterID,
VerificationEmail = Member.Email,
MemberName = Member.FullName
});
}
else
{
ViewBag.Message = "Invalid BASF ID";
return PartialView("_ValidationError");
}
}
Идея состоит в том, что я буду использовать AJAX для отправки значения идентификатора и его проверки. Если идентификатор действителен, я перенаправляюсь в представление «Разделы». Если идентификатор недействителен, возвращается сообщение об ошибке.
Что происходит, так это то, что действительный идентификатор перенаправляет на представление «Разделы», но страница не появляется. Отображается только год. Просто написано "2016" в верхнем левом углу страницы. Страница также зависла, пытаясь получить изображение из другого домена.
Если я прокомментирую только ненавязчивый ajax из пакета, перенаправление просмотра работает нормально (но я не могу вернуть сообщение об ошибке, если идентификатор недействителен). Если я прокомментирую только jQuery из пакета, перенаправление представления работает нормально (но другой код на стороне клиента не работает).
Почему эти две библиотеки сценариев плохо работают вместе или что я могу сделать, чтобы получить больше информации о том, что здесь происходит? Спасибо.
ModelStateError
и верните представление - person   schedule 01.08.2016