MVC3 Ajax formulier werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Nu online

Haan

dotnetter

Topicstarter
Ik loop tegen een probleem aan bij het gebruik van Ajax.BeginForm in een ASP.NET MVC3 project. De bedoeling is dat er een loading divje getoond wordt. Echter zodra ik dat toevoeg, werkt het submitten niet meer goed. De submit zelf nog wel, maar daarna gebeurt er niets. Dus bijv. een foutmelding tonen bij foute invoer, of redirecten naar een andere pagina doet het niet, je komt gewoon weer terug in exact hetzelfde formulier.

In onderstaande voorbeeld gaat het bij mij al fout:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@model string
@{
    ViewBag.Title = "Test";
}

<h2>Test</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")"></script>

@using (Ajax.BeginForm("Test", new AjaxOptions() { LoadingElementId = "loader" }))
{
    @Html.ValidationSummary(true)

    <input type="submit" name="submit" value="Click" />
    
    <div id="loader" style="display: none">
        loading ... 
        <img src="@Url.Content("~/Images/loading_big.gif")" alt="loading" />
    </div>
}


Controller methods:
C#:
1
2
3
4
5
6
7
8
9
10
11
public ActionResult Test()
{
    return View();
}

[HttpPost]
public ActionResult Test(string s)
{
    System.Threading.Thread.Sleep(2000);
    return RedirectToAction("Success");
}


Als ik het unobtrusive ajax script niet reference werkt het wel, maar dan doet de loading div het weer niet ;)

[ Voor 8% gewijzigd door Haan op 05-10-2012 11:04 ]

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 18-05 16:04
Heb je al gekeken met bv Firebug of je scriptfouten krijgt of wellicht iets niet goed gaat met je xhr request?

Ik heb zeer vroeger eens wat gedaan met de Ajax extensies, toen was t nog ruk :P Dus ben bij jquery blijven hangen icm de jquery.form plugin. Probeer eens expliciet de UpdateTargetId van je AjaxOptions te setten.

Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Nu online

Haan

dotnetter

Topicstarter
Ha ik heb nu alles in een <div id="wrap"> gezet en die als UpdateTargetId aangewezen.Nu gaat het opzich wel goed. Alleen blijft bij een redirect de titel van het formulier staan.

Maar is Ajax().BeginForm nou eigenlijk wel bedoeld hiervoor?

Ik dacht niet dat ik het ooit zou zeggen, maar bij Webforms icm Telerik RadControls is het veel makkelijker om met ajax te werken.

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 18-05 16:04
Webforms Telerik ajax *makes evil finger cross*. Granted het is beter dan updatepanel e.d. Maar wacht maar tot dat je met dynamische controls aan de slag gaat.

De ajax form extensie is om je form submit via ajax te doen duh :P En natuurlijk blijft bij een redirect je titel staan. Je redirect namelijk niet de hele pagina, je update alleen dat gedeelte in je updatetarget.

Het is geen webforms, waarbij je een ajax postback doet en vervolgens alsnog de hele pagina opgebouwd wordt :P. ( :r )

Kijk anders hier eens voor je redirect probleem.


heeft maar een klein beetje hekel aan webforms

Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 28-02 01:01
Gebruik anders gewoon een onBegin en onComplete dan kan je het zelf regelen met jquery bv.

Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Nu online

Haan

dotnetter

Topicstarter
@Deathraven: ik doe ook liever MVC hoor, maar met de RadControls van Telerik kan ik dingen doen die ik in MVC never nooit voor elkaar zou krijgen. wellicht dat dat meer over mij zegt, dan over de RadControls :P

Maar voor nu is het wel even prima, het moest een aanpassing zijn die 0 minuten mocht kosten, dus ik zit alweer wat over budget ;) Sowieso bedacht ik me later dat het om een formulier gaat dat als iframe in een andere website hangt, dus de titel zie je niet eens ;)

Volgende keer wordt het een mooi modal divje over het hele formulier heen.

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 18-05 16:04
Haan schreef op vrijdag 05 oktober 2012 @ 12:05:
@Deathraven: ik doe ook liever MVC hoor, maar met de RadControls van Telerik kan ik dingen doen die ik in MVC never nooit voor elkaar zou krijgen. [small] wellicht dat dat meer over mij zegt, dan over de RadControls :P
Valt wel mee hoor, Telerik heeft voor webforms best mooie controls waar een dijk functionaliteit in zit waar je U tegen zegt. Waarmee, als je dat in MVC wilt nabouwen, gewoonweg te lang mee bezig bent. Ik wordt er persoonlijk alleen helemaal gek van dat cross-feature compatibiliteit vaak zeer gebrekkig is en je weer op moet lossen met ranzige hacks.
En wat betreft het AJAX gedeelte van Telerik, dat werkt prima, zolang je scherm niet te complex wordt. Helaas heb ik tot nu toe niet in webforms projecten gewerkt waarbij de klant iets simpels wilt waardoor ik telkens weer de meest bizarre ajax monsters moet bouwen :P
Pagina: 1