Frage AJAX.BeginForm PostURL ist beschädigt


Ich habe ein seltsames Problem beim Versuch, die Ajax.BeginForm-Methode von ASP.NET MVC3 zu verwenden. Das Formular wird ordnungsgemäß auf der Seite mit dem korrekten Aktionsattribut gerendert. Wenn das Formular jedoch übermittelt wird, gibt das "OnFailure" -Ereignis einen "Not Found" 404-Fehler zurück.

Wenn ich die Anfrage mit fiddler beobachte, sehe ich, dass die Post-URL "/ [Object NodeList]" ist, was offensichtlich ungültig ist.

Mein Razor-Code lautet wie folgt:

@using (Ajax.BeginForm("Save", "Items", new AjaxOptions { UpdateTargetId = "itemContainer", InsertionMode = InsertionMode.Replace, OnFailure = "onFailure"}))
{
    <div style="position:absolute; bottom:20px; left:200px;">
        <button type="submit" id="Save" name="action" value="Save">Save</button>
        <button type="submit" id="Cancel" name="action" value="Cancel">Cancel</button>
    </div>
}

8
2017-12-07 21:31


Ursprung


Antworten:


Das Problem war die Verwendung von "action" für das Attribut name auf den Schaltflächen zum Senden. Sobald ich das Namensattribut auf einen anderen Wert geändert habe, hat alles perfekt funktioniert.

Ich vermute, dass es in der unauffälligen Ajax-Bibliothek einen jQuery-Selektor gibt, der verwirrt wurde.


11
2017-12-08 13:57



Haben Sie in Ihrer web.config unauffälliges JavaScript aktiviert oder deaktiviert? Im ersten rate hier die ms Ajax Bibliothek agiert Goofy so unaufdringlich, dass wir jquery Unterstützung bekommen.

Worauf ist Ihre Formularaktion festgelegt? Veröffentlichen Sie das Formular-HTML-Element, wenn Sie können.


0
2017-12-07 22:23