Mvc 3 texbox dans webgrid (rasoir)
Simple Q:Comment avez-vous-je obtenir la zone de texte pour afficher la valeur. Le Code ci-dessous échouer sur l'article.Nom
@model List<Mvc2010_11_12.Models.Employee>
@{
var grid = new WebGrid(source: Model,defaultSort: "FirstName",rowsPerPage: 3);
}
<div id="grid1">
@grid.GetHtml(columns: grid.Columns(
grid.Column("LastName"),
grid.Column(format: (item) => Html.TextBox("LastName", item.LastName))
))
</div>
Vous devez vous connecter pour publier un commentaire.
Les méthodes d'Extension (c'est à dire, Html.Zone de texte) ne fonctionnent pas bien avec les objets dynamiques (c'est à dire, le point)... c'est une limitation de c#.
Vous avez un peu d'options:
format:
InputExtensions.TextBox(Html, "Last Name", item.LastName) //static call
format:
Html.TextBox("Last Name", (object)item.LastName) //cast as non-dynamic object
format:
<input type="text" name="LastName" value="@item.LastName" /> //avoid extensions
Aussi, je crois qu'il y a un inhérente lambda avec un "élément" paramètre - vous ne devriez pas avoir besoin de le déclarer vous-même.
Assez compliquée mais qui fonctionne:
Il existe peut-être une meilleure approche si. Encore l'apprentissage de la syntaxe Razor et franchement je suis un peu déçu par le WebGrid helper après avoir utilisé MVCContrib Grille.
hidden id="RowId{N}" <=> textbox id="LastName{N}", N=1..RowCount
. Je vous remercie.Que l'on travaille pour moi
Essayez ceci:
Essayer cette
J'ai eu de cast de l'objet à la chaîne comme suit:
Montrant Lien ou texte brut basé sur une condition: