ASP.NET MVC, Ajax.BeginForm mange params de soumettre le bouton cliqué. Ressemble à un bug

Si vous êtes en utilisant Ajax.BeginForm() avec plusieurs boutons de soumission similaire à ceci:

//View.aspx
<% using (Ajax.BeginForm("Action", "Controller", 
           new AjaxOptions { UpdateTargetId = "MyControl",  }))
{ %>
    <span id="MyControl">
       <% Html.RenderPartial("MyControl"); %>
    </span>
<% } %>

//MyControl.ascx
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<input name="prev" type="submit" value="prev" />
<input name="next" type="submit" value="next" />
//...

Tout est soumis au contrôleur amende, mais les paramètres de la soumettre le bouton qui a été cliqué sont absents de la Demande. Dans otherwords Demande["suivant"] et de la Demande["prev"] sont toujours nulles.

J'ai regardé dans le code JavaScript dans Microsoft.MvcAjax.js et il ressemble à la fonction Sys_Mvc_MvcHelpers$_serializeForm complètement saute au-dessus des entrées sont de type "envoyer".

Cela ne semble pas logique du tout. Sinon, comment pouvez-vous savoir quel bouton a été cliqué?

Il ressemble à un bug pour moi. Est-il une raison logique pour ignorer ces paramètres de formulaire?

  • J'étais sous l'impression que l'AJAX formes utilisent généralement des entrées bouton plutôt que de se soumettre entrées, ou suis-je une mauvaise interprétation de ce que vous essayez de faire?
  • Voulez-vous dire <input type="button"...? Si oui, le problème est le même. Quand il parcourt les paramètres du formulaire, il ne capte que les éléments avec tagName='input' et le type est l'un de la suite du texte, le mot de passe caché, case à cocher ou à la radio.
  • Encore semble être un bug dans MVC 2.0
InformationsquelleAutor RonnBlack | 2009-04-24