ASP.Net MVC 3.0 Ajax.BeginForm перенаправляет на страницу? - PullRequest
9 голосов
/ 26 ноября 2011

В ASP.Net MVC 3.0 я использую Ajax.Beginform

и попадание в JsonResult в случае успеха формы я вызываю функцию jQuery. но по какой-то причине моя форма перенаправляет на JsonAction

my View


@using (Ajax.BeginForm("ActionName", "Controller", null, new AjaxOptions
           {
               HttpMethod = "POST",
               OnSuccess = "ShowResult"
           }, new { id = "myform" }))
{
    // All form Fields
    <input type="submit" value="Continue" class="button standard" />
}

Мой контроллер <час />

public JsonResult ActionName(FormCollection collection)
{
    return Json(new { _status },JsonRequestBehavior.AllowGet);
}

JQuery

<Ч />
<script type="text/javascript">
function ShowResult(data) {
   // alert("I am at ShowResult");
    if (data.isRedirect) {
        window.location.href = json.redirectUrl;
    }
}

по какой-то причине, когда я нажимаю кнопку отправить. он запускает JSonResult и перенаправляет страницу на хост / контроллер / actionname Я включил мой

<script src="@Url.Content("jquery.unobtrusive-ajax.min.js")"></script>

в моем layout.cshtml

Может кто-нибудь сказать мне, что может быть не так?

Я нашел проблему. Теперь я должен найти решение при отправке Я проверяю свою форму

$("#myform").validate({
    submitHandler: function (form) {
   // my logic goes here....
 }});

Если я исключаю валидационную форму Ajax, она работает как положено. Но если я проверю свою форму, форма ajax не будет работать, как ожидалось Спасибо

1 Ответ

18 голосов
/ 26 ноября 2011

когда это происходит, это почти всегда, потому что ваши файлы скриптов не загружены

примечание от:

http://completedevelopment.blogspot.com/2011/02/unobstrusive-javascript-in-mvc-3-helps.html

  1. Установите указанный флаг в файле web.config:
    1. Включить ссылку на библиотеку jQuery ~ / Scripts / jquery-1.4.4.js
    2. Включите ссылку на библиотеку, которая перехватывает эту магию в ~ / Scripts / jquery.unobtrusive-ajax.js

Итак, загрузите fiddler http://fiddler2.com и посмотрите, будут ли скрипты вызываться и загружаться.

...