Effacer Tous les Champs sur MVC4 Rasoir Vue sur les deux: le Chargement et après le Retour à la Page
Quelle est la méthode la plus efficace afin de rendre tous les champs sur une MVC4 Rasoir vide lors du chargement de celui-ci (par exemple premier chargement ou après la sauvegarde de la page)? Si c'est possible pourriez-vous s'il vous plaît me suggérer un moyen avec l'aide de Rasoir propriétés, au lieu de l'utilisation de Javascript/jQuery.
S'il vous plaît re-lecture de votre question et de tenter de le rendre plus clair.
Ok, je l'ai simplifié. Pourriez-vous m'aider s'il vous plaît?
Ok, je l'ai simplifié. Pourriez-vous m'aider s'il vous plaît?
OriginalL'auteur Willys | 2013-10-29
Vous devez vous connecter pour publier un commentaire.
C'est un peu difficile de faire ce que vous essayez de faire, mais nous allons voir si je peux l'aider.
Tout d'abord, si vous avez simplement voulu effacer une fiche valeurs de fois qu'il a été publié, vous pouvez le faire comme ceci:
Simplement créer une nouvelle
ViewModel
n'est pas suffisant, comme leModelState
dictionnaire va essayer de remplir de nouveau le formulaire avec les anciennes valeurs. De ce fait ce que vous voulez, mais n'est pas vraiment en tirant parti de MVC pour faire ce que vous voulez.La meilleure façon de le faire serait de rediriger les requêtes vers l'action que vous utilisez pour afficher votre formulaire. Quelque chose comme ceci:
C'est un simple passage à vide du modèle de votre formulaire. Une fois que l'utilisateur remplit le formulaire, et c'est posté sur le serveur, vous pouvez le manipuler de la sorte:
Cette méthode n'empêche pas que. Vous devriez lire les réponses à this question. En particulier, Jodes fait un point très important:
The problem is if you want to allow the user to press back and re-submit to create a second entry, there is no way to tell if the user intended to make a second copy or not.
Je devrais être un peu plus clair. La technique que j'utilise ci-dessus est un exemple de la Post-Rediriger-Get le modèle. Il peut être utilisé pour empêcher un utilisateur de recevoir un popup en leur demandant de soumettre le formulaire, s'il s'agit d'actualiser la page. Dans ce sens, il peut réduire les doublons, mais, à partir de ma compréhension, au moins, il ne peut pas les éliminer entièrement.
Dans mon projet, j'ai contrôlé le numéro d'identité et si la même personne essayer de faire de l'enregistrement je préviens elle/lui. Mais, je pense qu'il doit y avoir un moyen, quand je n'ai pas de paramètre pour vérifier l'enregistrement en double et je n'utilisez pas de Captcha de contrôle. Que voulez-vous utiliser pour empêcher l'utilisateur de présenter les mêmes données d'un formulaire en utilisant le bouton retour du navigateur?
Si un utilisateur clique sur retour, puis soumet à nouveau le formulaire, vous auraient déjà leur enregistrement des données stockées dans la base de données. Vous pouvez ensuite déterminer si le compte existe déjà dans la base de données. Donc quel que soit le domaine(s) que vous utilisez pour déterminer le caractère unique d'un compte (par exemple, un nom d'utilisateur unique ou une adresse e-mail unique), il vous suffit de vérifier votre base de données afin de voir si l'information existe déjà. Si elle le fait, d'empêcher l'enregistrement. Si vous êtes inquiet au sujet d'un utilisateur créant délibérément des comptes en double acquérir une certaine sorte d'avantage sur votre site, c'est complètement autre chose.
OriginalL'auteur John H
Appelant simplement une
ModelState.Clear()
fera l'affaire. Vous ne devriez pas avoir à instancier le modèle de vue nouveau.OriginalL'auteur Matt Millican
Une affiche (ou collecte) des informations sur un Modèle.
Donc, si vous passez un modèle Vide (c'est-à: propriétés de la valeur null ou vide ou les valeurs par défaut) il va "effacer tous les champs".
Tout ce que vous avez à faire est d'invoquer de nouveau l'Action qui affiche la vue, en train de passer d'un modèle vide.
EDIT:
Vous pouvez le faire en javascript, mais ensuite, vous avez à dupliquer et à maintenir la logique de ce que sont les valeurs par défaut.
OriginalL'auteur Romias