8
votes

MVC ASP.NET MVC3 AutoryHTML attribut ne fonctionne pas?

La question est très simple:

Dites que vous avez un modèle appelé personne xxx

dans l'action Création du contrôleur xxx

Si vous l'exécutez,

  1. Entrée texte brut pour intro, non Le problème se produit.
  2. Entrée du contenu HTML pour INTRO, peu importe la façon dont vous définissez votre fichier de configuration, il sera raconte "un potentiel dangereux ..."

    Je trouve la raison de ce problème.

    Si vous modifiez la fonction à xxx

    Cela éliminera l'erreur "dangereuse" potentielle ".

    mais mon problème est que pour ma demande, je dois utiliser le paramètre secondaire Collection FormCollection Dans la méthode Créer une action, car je dois utiliser d'autres valeurs de contrôle et une autre variable de serveur pour affecter une valeur calculée à la propriété compliquaValue .

    Si un expert de ASP.NET MVC3 J'ai rencontré le même problème que moi et trouvé une solution, merci de bien vouloir-moi savoir.


0 commentaires

3 Réponses :


0
votes

Avez-vous essayé

[lier ( exclure = "compliquévalue")]

: xxx

?

avec ce qu'il vous permet d'exclure le réglage compliquéValue sur le formulaire et soumettez toujours l'objet sous forme de classe .

espère que cela aide


1 commentaires

En fait, cela exclut la propriété O.comPliquévalue, mais il reste en formatcollection afin que l'erreur soit toujours déclenchée.



2
votes

Pourrais-je suggérer d'utiliser un classeur de modèle personnalisé au lieu de tirer les données complexes d'un formulaire. Scott Hanselman a un Blog Poste sur la création d'un classeur de modèle personnalisé qui servirait de bon modèle . Dans son poste, il met en place un DateTimeLodelBinder qui permet de définir une propriété DateTime soit par une seule entrée contenant la date ou une paire d'entrées contenant une date et une heure.


0 commentaires

8
votes

Ce forum sur ce lien traite de cette question en longueur et donne quelques solutions de contournement.

http://forums.asp.net/p/1621677/4161637.aspx p>

Voici une solution de ce fil qui peut ne pas fonctionner ou ne pas fonctionner pour vous: P>

public virtual ActionResult Edit(int id)
{
    return View(this.repository.GetById(id));
}
[HttpPost]
public virtual ActionResult Edit(int id, int? bogusID)
{            
    var d = repository.GetById(id);
    if (TryUpdateModel(d))
    {
        repository.Save();
        return RedirectToAction("Index");
    }
    return View();
}


3 commentaires

La réponse nous a aidés à résoudre le problème. Merci beaucoup!


L'exemple du Top a fonctionné pour moi, sauf que je devais supprimer le supplémentaire à partir de demande.unvalidated (). Formulaire Pour avoir Demande.Unvalidated.forme < / code>


Au lieu du faux paramètre, faites simplement un nom de fonction différent (E.G. Update (ID INT)) et marquez-le avec Attribut ActionName ("Modifier").