2014-10-14 4 views
4

Я использую этот частичный видAjax.BeginForm OnSuccess не стреляя

Контроллер

public JsonResult AddElement(CreateConfigEntityModel model) 
{ 
    if (ModelState.IsValid) 
    { 
     _merchantSitesManager.AddEntity(model.EntityName, model.DefaultValue); 
     return Json(new { code = 1 }, JsonRequestBehavior.AllowGet); 
    } 
    else 
     return Json(new { code = 0 }, JsonRequestBehavior.AllowGet); 
} 

Это то, что показывает после отправки формы (пункт получает добавлено)

enter image description here

Не уверен, что я делаю неправильно.

Использование v2.1.1 JQuery JavaScript библиотеки

у меня в web.config

<add key="ClientValidationEnabled" value="true" /> 
<add key="UnobtrusiveJavaScriptEnabled" value="true" /> 

Я звоню мой частичный вид как этот

@{ Html.RenderPartial("_CreateConfigEntity", new CreateConfigEntityModel(Model.MerchantId)); } 
+0

Где точка останова попадает в контроллер. –

+0

Контроллер получает вызов с действительным состоянием модели – ThunderDev

+0

Я проверил ваш код, он работает для меня. –

ответ

14

Если у вас есть бренд новый проект, вам нужно сделать следующее, чтобы это работало. Шаблон ASP.NET MVC делает поддержку не ненавязчивый AJAX из коробки:

  1. Добавить "Microsoft.jQuery.Unobtrusive.Ajax" пакет из NuGet в свой проект. Вы можете сделать это, щелкнув правой кнопкой мыши на проекте и выбрав «Управление пакетами Nuget».
  2. Добавьте "jquery.unobtrusive-ajax.js" на свою страницу. Если вы используете «пакетирования» особенность в System.Web.Optimization, один простой способ будет добавить его к расслоению JQuery:

    bundles.Add(new ScriptBundle("~/bundles/jquery") 
        .Include("~/Scripts/jquery-{version}.js") 
        .Include("~/Scripts/jquery.unobtrusive-ajax.js")); 
    

    Вы также можете просто добавить <script> тег, который указывает на сценарий ,

Предполагая, что страница загружается Jquery и jquery.unobtrusive-ajax.js, код вы вывесили должны работать.

+0

Я уже сделал это и вижу оба файла при проверке источника моей страницы. – ThunderDev

+0

Есть ли ошибки JavaScript на странице при нажатии кнопки?Возможно, вам придется включить сохранение консоли браузера между запросами, поскольку в настоящее время вы делаете полный пост, и все сообщения об ошибках исчезнут. –

+1

. Мой плохой, у меня не было 'jquery.unobtrusive-ajax.js'. Извините – ThunderDev

1

Добавить ссылку на следующие библиотеки JS:

  • jquery- {версия} .min.js
  • MicrosoftAjax.js
  • MicrosoftMvcAjax.js
  • jquery.validate.min.js
  • jquery.validate.unobtrusive.js
  • jquery.unobtrusive-ajax.js
Смежные вопросы