6
votes

ASP.NET MVC HTML.TextBox pour une valeur différente rendue que <%: Model.Value%>

C'est très étrange et je ne sais pas pourquoi. J'ai un point de vue qui renvoie une certaine valeur pour mon objet, lorsque vous le rendant, ils ont des valeurs différentes, pourtant, ils indiquent la même propriété:

<%: Html.TextBoxFor(f => f.myProperty) %>


7 commentaires

Où et à quel moment définissez-vous la valeur à 25?


Ce code ne compilera pas. Faute de frappe? Devrait être <% = html.textboxfor (f => f.myproperty)%> .


J'ai une certaine logique avant de déterminer la valeur de myProperty, puis quelque chose comme ceci: var modèle = nouveau myViewModel {myProperty = 25}; Lorsque je gère le débogage, il affiche clairement MyProperty = 25, et cela se reflète lorsque vous le rendez en tant que texte, mais pour la zone de texte, de quelque manière que ce soit! Merci.


@Generictypea, c'est ma typo-poste ici. Merci.


@Saxman - Pas de problème ... Je pense que nous pourrions peut-être voir votre modèle et votre propriété ici.


@Generictypeaea. Quelle tyo? <%: ...%> est la syntaxe .NET 4.


@Jesus Rodriguez - L'OP a édité la réponse afin qu'il n'y ait plus de faute de frappe.


3 Réponses :


0
votes

Mon mauvais, on dirait que le problème est dans le HTML, où j'ai la vue rendue de plusieurs vues partielles, et une partie de l'identifiant pour l'entrée est la même (je cache la vue d'édition et a rendu la vue principale en utilisant jQuery ), cette zone de texte choisit la valeur de la vue cachée !!! :)

Merci tout pour la recherche.


0 commentaires

16
votes

Essayez modélistate.clear () avant d'appeler la vue ou partielview et en passant dans le modèle.

Ce numéro se passait pour moi après avoir fait un post. C'est parce que les aides HTML reçoivent leur valeur de ModelState avant de vérifier le modèle réel. On dirait que cela devrait être inversé imo.


1 commentaires

Je suis d'accord, ce n'est pas un comportement souhaitable dans de nombreux scénarios. Voici une autre question pertinente: Stackoverflow.com/Questtions/1775170/ ... .



2
votes

Avoir le même problème, j'ai lu ce post aujourd'hui (et cela a résolu mon problème) et j'ai décidé d'enquêter davantage à ce sujet. Donc, voici ce que j'ai trouvé:

"ASP.NET MVC suppose que si vous rendez une vue en réponse à un message HTTP, et que vous utilisez les aides HTML, vous êtes le plus susceptible de réorganiser un formulaire qui a échoué la validation. Par conséquent, les aides HTML vérifient réellement la modélisation de la valeur à afficher dans un champ avant de regarder dans le modèle. " Par: Simon J Ince

Si vous voulez en savoir plus à ce sujet, accédez au lien ci-dessous: http://blogs.msdn.com/b/simonince/archive/2010/05/05/asp-net-mvc-s-html-helpers-render-the-wrong-value.aspx

vous voir.


0 commentaires