2009-10-28 5 views
0

dans ma table d'itinéraire Je cette entréeasp.net mvc Html.Textbox, impossible de définir la valeur?

routes.MapRoute(
      "myRoute", 
      "route/{controller}/{action}/{id}/{start}/{end}", 
      new { controller = "Home", action = "Index", id = "", start="", end="" } 
     ); 

dans ma page principale J'ai une ligne de code comme ceci:

<%= Html.TextBox("foo", "bar") %> 

Si j'accéder à la page sous forme de http://mysite.com/route/Home/Index/id/start/end la zone de texte rend OK avec une valeur de "bar" Toutefois, si j'accède à la page en utilisant les paramètres par défaut http://mysite.com/route/ la zone de texte n'a pas de valeur! Dans le HTML émis il apparaît comme si:

<input id="foo" type="text" value="" name="foo"/> 

il n'a pas mis la valeur à "bar" ... est-ce un bug? ou est-ce pas autorisé dans les pages maîtres mvc?

+0

Cela me semble bien, j'ai copié et collé votre code exactement et je me retrouve avec une boîte de texte qui a "barre" dedans. Vous pouvez essayer de redémarrer l'application ou VS? –

+0

Définissez-vous une ViewData dans l'action du contrôleur avant que la vue ne s'affiche? –

+0

J'ai quelques trucs dans ma collection ViewData avant que la vue ne soit rendue, mais je ne peux même pas obtenir ce simple cas d'utilisation d'une simple chaîne pour travailler – puffpio

Répondre

0

il devrait fonctionner correctement

"<% = Html.TextBox (" name », "S'il vous plaît entrer votre nom ...")%>

Sortie: < id = entrée "nom de nom" = type "name" = "text" value = "S'il vous plaît entrer votre nom ..." />

0
<%: Html.TextBox("foo", "bar") %> 

parfois vous avez besoin de le forcer à être un simple attribut html comme suit

<%: Html.TextBox("foo", null,new{value="bar"}) %> 
Questions connexes