Я не знаю, что я сделал не так, но, обновив новую версию jQuery, моя страница ajax больше не работает.Новая версия jQuery загружает другую страницу вместо замены div
Я использовал 1.8.3 из google CDN, и теперь я пытаюсь использовать 1.9.1. Я также обновил пользовательский интерфейс jQuery до 1.9.2 также из CDN Google. Наконец, я взял последнюю «jquery.unobtrusive-ajax.min.js» для своей страницы.
Все работает отлично на моем сайте, кроме страницы, где я использую вызов ajax для замены div на моей странице. Эта страница работала отлично, но теперь, когда пользователь нажимает кнопку «Отправить», она просто загружается на другую страницу.
Here is a jsfiddle, которые упрощают мою страницу. Я не знаю, как назвать «поддельный контроллер» в jsfiddle, который может вернуть простой html, поэтому измените его, если хотите. Нажимая кнопку, предполагается заменить div на тот же идентификатор GUID. Вызов Ajax сгенерирован с объектом Ajax с MVC 3. Как это:
using (Ajax.BeginForm("AddSubtitle", "Recipe",
new AjaxOptions
{
UpdateTargetId = superGuid,
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
OnSuccess = "done"
}))
{
<input type="hidden" name="IDRecipe" value="@Model.IDRecipe" />
<a name="SubtitleSection" ></a>
<input class="field required span6 text-box single-line" name="Name" />
<input type="submit" class="btn btn-success" value="Ajouter une catégorie d'ingrédient" />
}
Мой контроллер, кажется, работает очень хорошо, так как в новой странице, которая открывается содержание является совершенным. Здесь это так, что у вас есть все части головоломки.
[HttpPost]
[Authorize]
public PartialViewResult AddSubtitle(Subtitle sub)
{
Recipe realRecipe = db.Recipes.Find(sub.IDRecipe);
if ((Guid)Membership.GetUser().ProviderUserKey == realRecipe.IDUser || User.IsInRole("Admin"))
{
sub.Order = realRecipe.Subtitles.Count + 1;
if (sub.Name != null && sub.Name != "")
{
realRecipe.Subtitles.Add(sub);
db.SaveChanges();
}
else
ModelState.AddModelError("", "Le nom de la catégorie ne peut pas être vide!");
return PartialView("_SubtitleList", Utils.GetListIngredientAndSubtitle(realRecipe.IDRecipe, realRecipe.Subtitles));
}
else
return PartialView("_SubtitleList", null);
}
Кто-нибудь может мне помочь?
Что-нибудь в консоли браузера после загрузки страницы? –
Ошибка при использовании связанного jsFiddle: «Uncaught TypeError: Object [object Object] не имеет метода« live »« Live устарел, используйте делегирование с .on(). Чтобы перенести плагин unobtrusive-ajax, вы можете использовать: http://blog.jquery.com/2013/05/01/jquery-migrate-1-2-0-released/ –
Я тестировал хром, и это не помогло покажите мне эту ошибку. Просто попробуйте с IE и выполните ту же ошибку, что и @roasted. Я попробую его ссылку и посмотрю, поможет ли она! –