2009-11-28 8 views
1

Je commence à apprendre ASP.NET MVC et depuis que je travaille dans un magasin VB.NET je convertis un exemple de C#. Je suis en train de mettre en œuvre une vue fortement typé et l'exemple que je suis à la recherche montre ce qui suit:ASP.NET MVC fortement typée vue convertir de C# à VB.NET

<tr> 
    <td>Name:</td> 
    <td><%=Html.TextBox(x => x.Name)%></td> 
</tr> 

Je suis venu avec ce qui suit en VB.NET:

<tr> 
    <td>Name:</td> 
    <td><%=Html.TextBox((Function(x As Contact) x.Name).ToString)%></td> 
</tr> 

Est cette conversion est-elle correcte? Cela semble vraiment lourd (je sais, je sais, VB.NET est plus encombrant que C#, mais je n'ai pas le choix en la matière). Si c'est correct, est-ce le meilleur moyen?

+0

Juste un suivi: il y a beaucoup d'errata dans l'exemple que je suis. Je crois que le problème est que l'exemple utilise l'assembly du futur ASP.NET (Microsoft.Web.Mvc.dll de aspnet.codeplex.com) et la syntaxe correcte est '<% ​​= Html.TextBoxFor (x => x .Name)%> ' –

Répondre

0

Je pense que (x As Contact).Name serait suffisant, bien qu'il ait été un moment que j'essayé avec VB.NET ...

1

Pourquoi l'appel à ToString? La conversion exacte est celle-ci:

<tr> 
    <td>Name:</td> 
    <td><%=Html.TextBox(Function(x) x.Name)%></td> 
</tr> 

Vous avez probablement une méthode d'extension pour HtmlHelper part ailleurs, car il n'y a pas intégré surcharge TextBox qui prend Func<Contact, string> comme paramètre ... Donc, vous devez convertir cette méthode aussi

+0

J'ai converti en chaîne parce que quand je n'ai pas VS2008 s'est plaint que" l'expression de Lambda ne peut pas être convertie en chaîne parce que la chaîne n'est pas un type de délégué ". Comme vous l'avez dit, je dois manquer quelque chose, alors je vais devoir revoir. –

Questions connexes