Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
EmptyResult und FireFox
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4802
Herkunft: Leipzig

Themenstarter:

EmptyResult und FireFox

beantworten | zitieren | melden

Hallo,

gegeben sei folgender Code:

[HttpPost]
public ActionResult Search()
{
    return new EmptyResult();
}
@using( Ajax.BeginForm( "Search", new AjaxOptions() { UpdateTargetId = "result" } ) )
{
    <input type="submit" value="Suchen" />
}
<div id="result">
</div>

Dieser Code wird in Chrome und IE problemlos ausgeführt. FireFox hingegen zeigt im FireBug den folgenden Fehler:
Fehler
Node cannot be inserted at the specified point in the hierarchy" code: "3
(function(a,b){function cg(a){return d...a:a+"px")}}),a.jQuery=a.$=d})(window);

kennt jemand dieses Problem oder hat eine Erklärung dafür?

Grüße
Noodles
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3430
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,

hast Du Dir mal mit Firebug angeschaut was bei der Abfrage genau zurückkommt?
Darüber kannst Du vielleicht herausfinden, warum Firefox glaubt, ein Element erstellen zu müssen, das nicht in die Dokumenthierarchie passt.
Ich vermute, da wird irgenwo ein fehlerhaftes Script generiert.

Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4802
Herkunft: Leipzig

Themenstarter:

beantworten | zitieren | melden

Hallo,

die Antwort ist leer.
Im XML Tab steht:
Zitat
XML-Verarbeitungsfehler: Kein Element gefunden Adresse: moz-nullprincipal:{e19e4977-8a65-4a0f-9a72-8dac6ffa1711} Zeile Nr. 1, Spalte 1:

Güße,
Noodles
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16112

beantworten | zitieren | melden

Hast Du das ganze mal mit "normalem" jQuery.Ajax versucht, ohne Microsoft.Ajax?
Leere Antworten, selbst null Rückgaben stellen für jQuery eigentlich kein Problem dar. Ich halt nicht so viel vom Micosoft-Implementierungsversuch und könnte mir durchaus vorstellen, dass hier der Fehler begraben liegt.

Andere Idee:
Jagst Du das Javascript-File noch durch einen Minifier? Evtl wird hier etwas falsch behandelt.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Abt am .
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

beantworten | zitieren | melden

Hallo Noodles,

auch ich würde es mit reinem jQuery versuchen, zumal das Microsoft AJAX Toolkit abtritt und, auch offiziell, jQuery Platz macht.
zurückgenommen, siehe meinen Post weiter unten. Ich war der Meinung, die Verwendung von Ajax.BeginForm() würde das Verwenden von MicrosoftAjax.js implizieren, was der unten genannte Blogpost von Brad Wilson allerdings wiederlegt.

m0rius
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von m0rius am .
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4802
Herkunft: Leipzig

Themenstarter:

beantworten | zitieren | melden

Hallo,

ich nutze nicht das AjaxToolkit.
Ich verwende keinen Minifier.
Ich verwende MVC 3 mit unobtrusive JavaScript.

Also im normalen jQuery kommt der Fehler Firebug nicht. Alllerdings steht im XML-Tab dasselbe.
Zitat
XML-Verarbeitungsfehler: Kein Element gefunden Adresse: moz-nullprincipal:{e19e4977-8a65-4a0f-9a72-8dac6ffa1711} Zeile Nr. 1, Spalte 1:
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16112

beantworten | zitieren | melden

Dann scheint das Problem nicht Dein Browser zu sein, sondern das von Microsoft mitgelieferte Ajax-File, das nicht mit der Rückgabe zurecht kommt.

Die Funktion Ajax.BeginForm ist allerdings nicht in jquery.unobtrusive-ajax.js enthalten, sondern in MicrosoftAjax.js
Microsoft hat MicrosoftAjax.js ( das man ohnehin in MVC3 Anwendungen nicht nutzen solle ) und MicrosoftMvcAjax.js als veraltet deklariert und man soll stattdessen jQuery in der Originalfassung verwenden; was durchaus sinn macht.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4802
Herkunft: Leipzig

Themenstarter:

beantworten | zitieren | melden

Zitat von Abt
Die Funktion Ajax.BeginForm ist allerdings nicht in jquery.unobtrusive-ajax.js enthalten, sondern in MicrosoftAjax.js
Microsoft hat MicrosoftAjax.js ( das man ohnehin in MVC3 Anwendungen nicht nutzen solle ) und MicrosoftMvcAjax.js als veraltet deklariert und man soll stattdessen jQuery in der Originalfassung verwenden; was durchaus sinn macht.

MicrosoftAjax.js ist das Erste (alle anderen MicrosoftAjax files ebenfalls) was ich gelöscht habe, nach dem ich das Projekt angelegt habe. Somit sollte die Aussage nicht unbedingt Bestand haben.

http://yobriefcase.posterous.com/unobtrusive-javascript-in-mvc3
private Nachricht | Beiträge des Benutzers
m0rius
myCSharp.de - Member

Avatar #avatar-3125.png


Dabei seit:
Beiträge: 1043

beantworten | zitieren | melden

Hallo Abt,

das gleiche wollte ich eben auch schreiben, bis ich auf den Blogpost Unobtrusive Ajax in ASP.NET MVC 3 von Brad Wilson gestoßen bin:
Zitat von Brad Wilson
In ASP.NET MVC 1.0, we shipped Ajax helpers implemented as extension methods on the AjaxHelper class (and available via the Ajax property of your views). In the box, we shipped two category of Ajax helpers: Ajax links and Ajax forms. Both fundamentally did the same thing: make an asynchronous request, and do something with the result when you’re finished (including knowing whether you got back a success or failure response from the server).

In ASP.NET MVC 3 Beta, we've updated the runtime to enable a feature we're calling "Unobtrusive Ajax". We have also created a consumer for these unobtrusive Ajax attributes that uses jQuery to perform the Ajax requests on our behalf.

m0rius
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von m0rius am .
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16112

beantworten | zitieren | melden

Hi,

man lernt immer dazu. Trotzdem scheints nicht grad optimal zu laufen, mh? 8)
Ich würde trotzdem aber gerade bei solchen Dingen beim "richtigen" jQuery bleiben; bzw. sowieso Abstand von "APIs auf APIs" nehmen. Man sieht ja wie schnell sich Microsoft in dieser Hinsicht um 180° dreht.
jQuery selbst wird nicht einfach so mal kurz die ganze API auf den Kopf stellen.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Abt am .
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4802
Herkunft: Leipzig

Themenstarter:

beantworten | zitieren | melden

Sorry, aber ich wollte keine Belehrung welches API gut oder böse ist.
Hat jemand Ideen die zur Lösung mit Ajax.BeginForm beitragen?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16112

beantworten | zitieren | melden

Wie bereits paar Beiträge vorher: plain jQuery nutzen. Sind 3 Zeilen Code
Ansonsten musst wohl auf nen Fix von MS warten, da es ja offensichtlich ist, dass es am mitgelieferten js-File liegt....
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4802
Herkunft: Leipzig

Themenstarter:

beantworten | zitieren | melden

Firefox kann anscheinend keine komplett leeren Results handeln, im Gegensatz zu Chrome und IE.

Lösung:
anstatt EmptyResult, return Json( string.Empty ) verwenden.
private Nachricht | Beiträge des Benutzers