ASP.NET MVC 4 - Ajax.BeginForm i html5

Ustawić:

Zaktualizowałem aplikację z ASP.NET MVC 3 do ASP.NET MVC 4.

Aplikacja działała dobrze w MVC 3. Jedyną rzeczą, która nie działa w MVC 4, jest formularz Ajax.Begin: formularz domyślnie przyjmuje pełne żądania strony, zamiast asyncowych żądań AJAX.

Zasadniczo jest to czarodziej, który napisałem, ale to nie ma znaczenia. Model.Step.ActionName poprawnie zwraca ciąg znaków (patrz kod poniżej).

Kod:

Kod w widoku to:

@{ 
    using (Ajax.BeginForm(Model.Step.ActionName, null, new AjaxOptions { UpdateTargetId = "wizardStep", OnBegin="isValid", LoadingElementId="PleaseWait", OnSuccess="SetFocusOnForm" }, 
        new {@name="wizardForm", @id="wizardForm" } ))
{

//form contents

}
}
Rendering:

Zaznaczam, że Ajax.BeginForm w MVC 4 używa HTML 5. Pokazuję różnicę między tym, jak MVC 3 i MVC 4 renderują poniższy formularz:

MVC 3:

<form action="/Solicitors/Company/New/YourDetails" id="wizardForm" method="post" name="wizardForm" onclick="Sys.Mvc.AsyncForm.handleClick(this, new Sys.UI.DomEvent(event));" onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, loadingElementId: 'PleaseWait', updateTargetId: 'wizardStep', onBegin: Function.createDelegate(this, isValid), onSuccess: Function.createDelegate(this, SetFocusOnForm) });">

// form contents

</form>

MVC 4:

<form action="/Solicitors/Company/New/LoginDetails" data-ajax="true" data-ajax-begin="isValid" data-ajax-loading="#PleaseWait" data-ajax-mode="replace" data-ajax-success="SetFocusOnForm" data-ajax-update="#wizardStep" id="wizardForm" method="post" name="wizardForm" novalidate="novalidate">

// form contents

</form>

Nie mam pojęcia, czy to prawda, ale załóżmy, że tak jest.

Problem:

Problem polega jednak na tym, że Ajax nie jest używany, tylko pełne odświeżenie strony. Więc sumat się myli ...

Pytanie:

Pytanie brzmi: co jest nie tak ?!

questionAnswers(1)

yourAnswerToTheQuestion