2010-04-15 4 views
2

Toute idée pourquoi le code ci-dessous ne déclenche pas si je devais mettre un peu HTML à l'intérieur du textarea? Cela marche bien, je n'ai pas de code HTML, mais je ne sais pas pourquoi ça ne marche pas. Voici le code.MVC/HTML - entrée soumettre ne se déclenche pas lorsque HTML est dans une zone de texte

<% using (Ajax.BeginForm("AddPost", new AjaxOptions { UpdateTargetId = "blogPosts" })) 
    { %> 
    <table> 
     <tr> 
      <td>Post Title:</td> 
      <td><input id="Title" type="text" name="title" /></td> 
     </tr> 
     <tr> 
      <td>Post Description:</td> 
      <td><textarea id="Description" name="description" rows="10" cols="60" wrap="virtual"></textarea></td> 
     </tr> 
    </table> 
    <input type="submit" value="Save" /> 
<%} %> 


    Here is what gets rendered (It's inside an Ajax form) 

     <div> 
     <form action="/Home/AddPost" method="post" onclick="Sys.Mvc.AsyncForm.handleClick(this, new Sys.UI.DomEvent(event));" onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, updateTargetId: &#39;blogPosts&#39; });"> 
    <table> 
     <tr> 
      <td>Post Title:</td> 
      <td><input id="Title" type="text" name="title" /></td> 
     </tr> 
     <tr> 
      <td>Post Description:</td> 
      <td><textarea id="Description" name="description" rows="10" cols="60" wrap="virtual"></textarea></td> 
     </tr> 
    </table> 
    <input type="submit" value="Save" /> 
</form> 
    </div> 
+0

Veuillez clarifier, "ne fonctionne pas". De plus, quelle langue côté serveur utilisez-vous? –

+0

Ne fonctionne pas = cliquez sur le bouton Envoyer rien ne se passe. En utilisant C#. –

+0

Quel html? Est-ce qu'il contenait «»? Quel navigateur? – BalusC

Répondre

2

a fini par être une chose de validation. Ajouté ce qui suit au Web.config et cela a fonctionné.

<httpRuntime requestValidationMode="2.0" /> 
<pages validateRequest="false" /> 
4

Dans votre action contrôleur ajoutez l'attribut suivant:

[ValidateInput(false)] 
public ActionResult AddPost() { } 

Par défaut MVC vérifiera pour l'entrée HTML sous la forme et jeter une exception à moins que vous lui dites de ne pas valider la demande en plaçant la ValidateInputAttribute sur votre action de contrôleur.

+0

négatif. Ce n'est même pas arriver au code quand j'appuie sur le bouton. J'utilise VS2010 MVC2.0 si cela aide. –

0

formes imbriquées ne sont pas pris en charge dans la norme HTML et qui pourraient être la cause de votre problème. Essayez de supprimer l'un des formulaires imbriqués et voyez si cela aide.

+0

Supprimé. Ne fonctionne pas –

1

Pourquoi ne pourriez-vous avoir utilisé Ajax.BeginForm? Vous devez configurer les paramètres de fonction dans votre méthode de contrôleur post comme ceci: public ActionResult AddPost(string Title, string Description). Notez que les noms de paramètres doivent correspondre aux ID de vos contrôles d'où proviennent les données.

+0

Je l'ai déjà configuré comme ça. Comme dit précédemment, cela ne fonctionne pas seulement quand vous entrez un

Questions connexes