2016-09-02 2 views
0

L'objectif est d'exclure conditionnellement l'ouverture & fermeture <form> balises qui sont rendus par le code MVC suivant:conditionnellement supprimer <form> tag lorsque vous utilisez MVC HtmlHelper

@using (Html.BeginForm()) 
    { 
     <label>The Value</label> 
     <input name="value" /> 

     ... more form elements ... 

     <input type="submit" value="submit"/> 
    } 

Je suis la désactivation de la forme sur cette page en fonction d'un condition dans le modèle. Je désactive déjà les entrées de formulaire individuelles, mais je veux aller un peu plus loin et supprimer complètement le formulaire pour éviter que le formulaire ne soit soumis en cas de défaillance de JS (c'est ainsi que je désactive le formulaire).

Il n'est pas possible de placer manuellement les balises html et de les entourer d'une instruction if - cela se traduit bizarrement dans l'éditeur en affichant une erreur.

Répondre

1

Il est possible de supprimer conditionnellement les balises <form> restituées avec seulement un petit changement au code ci-dessus, tout en conservant le HtmlHelper d'origine. Nous avons simplement besoin d'une instruction ternaire if et renvoyer une valeur nulle lorsque nous voulons renoncer au formulaire:

@using (Model.isReadOnly ? null : Html.BeginForm()) 
    { 
     <label>The Value</label> 
     <input name="value" /> 

     ... more form elements ... 

     <input type="submit" value="submit"/> 
    }