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:> Fehlermeldung:
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
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
Hallo,
die Antwort ist leer.
Im XML Tab steht:
XML-Verarbeitungsfehler: Kein Element gefunden Adresse: moz-nullprincipal:{e19e4977-8a65-4a0f-9a72-8dac6ffa1711} Zeile Nr. 1, Spalte 1:
Güße,
Noodles
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.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
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.
XML-Verarbeitungsfehler: Kein Element gefunden Adresse: moz-nullprincipal:{e19e4977-8a65-4a0f-9a72-8dac6ffa1711} Zeile Nr. 1, Spalte 1:
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 - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Die Funktion :::
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
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:
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
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg
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.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Sorry, aber ich wollte keine Belehrung welches API gut oder böse ist.
Hat jemand Ideen die zur Lösung mit Ajax.BeginForm beitragen?
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 - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Firefox kann anscheinend keine komplett leeren Results handeln, im Gegensatz zu Chrome und IE.
Lösung:
anstatt EmptyResult, return Json( string.Empty ) verwenden.