0

Я пишу очень простую тестовую страницу MVC4 и ненавязчивый Ajax, похоже, не работает. Когда я нажимаю кнопку отправки, страница не отправляется.Простой MVC4 ненавязчивый ajax не работает

У меня есть точка останова ВС и может сказать, что нет запроса.

Я использую Firefox, и когда я нажимаю кнопку отправки веб-консоль показывает эту ошибку JavaScript:.
--- пустая строка передается getElementById()

Что происходит на линии 16 в
--- jquery.unobtrusive-ajax.js



I Опции настройки Аякса следующим образом:

AjaxOptions ajaxOpts = new AjaxOptions { UpdateTargetId = "officeList", Confirm = "Are you sure?", Url = Url.Action("GetOfficeData") }; 

Вот мой AjaxForm:

@using (Ajax.BeginForm("GetOfficeData", ajaxOpts)) 
{ 
    <div> 
     @Html.DropDownList("orgList", new SelectList(Model.Organizations, "ORGID", "ORGNAME")); 

     <button type="submit" id="btnSubmit">Submit</button> 
    </div> 
} 

я получаю «Вы уверены, что приглашение», когда я нажимаю кнопку отправки (как определено в АЯКС опций).


Если изменить Ajax.BeginForm на:

@using (Html.BeginForm()) 
... 

Тогда есть запрос, мои контрольные точки попасть, и там нет JS ошибки.


Я использовал NuGet, чтобы получить последнюю версию как JQuery и ненавязчивым-Ajax. Вот мой сценарий теги просмотреть исходный код (все из них - в порядке убывания):

<script src="/Scripts/jquery-2.0.3.js"></script> 
<script src="/Scripts/DataTables-1.9.4/media/js/jquery.dataTables.js"></script> 
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script> 
<script src="/Scripts/jquery.validate.js"></script> 
<script src="/Scripts/jquery.validate.unobtrusive.js"></script> 
<script src="/Scripts/modernizr-2.5.3.js"></script> 




Вот форма, которая визуализируется:

<form action="/Selectee/GetOfficeData" data-ajax="true" data-ajax-confirm="Are you sure?" data-ajax-mode="replace" data-ajax-update="#officeList" data-ajax-url="/Selectee/GetOfficeData" id="form0" method="post">    
    <div> 
     /*--my drop down ..... 
     <br /> 
     <button type="submit" id="btnSubmit">Submit</button> 
    </div> 
</form> 




Есть идеи?

+1

Является ли ваше действие HttpPost? –

+0

Нет, это не HttpPost. Это важно на данном этапе? Кажется, что браузер не отправляет запрос. –

+0

Вы правы, он даже не добирается до контроллера. –

ответ

0

У меня есть работа.

У меня не было Html.BeginForm(), только Ajax.BeginForm(). Это верно?

Я добавил Html.BeginForm() с Ajax.BeginForm() и всеми моими элементами управления внутри этой формы и начал работать.

Я думал, что Ajax.BeginForm() занял место Html.BeginForm, но, похоже, мне нужны оба. Это верно?

+2

Вам не нужны оба Ajax.BeginForm и Html.BeginForm – Marthijn