Html.ActionLink valeur de ViewBag
En ASP net MVC, C# j'ai mis une Liste(Voitures) dans le ViewBag.les voitures, maintenant, je veux faire un actionlink avec le titre de chaque voiture, comme ceci:
@if (ViewBag.cars != null)
{
foreach (var car in ViewBag.cars)
{
<h4>@Html.ActionLink(@car.title, "Detail", "Cars", new { id = @car.id }, new { @class = "more markered" })</h4>
}
}
L'erreur que j'obtiens lorsque j'utilise @voiture.titre ou tout simplement voiture.titre comme valeur, j'obtiens cette erreur:
CS1973: 'System.Web.Mvc.HtmlHelper<AutoProject.Models.CarDetails>' has no applicable method named 'ActionLink' but appears to have an extension method by that name.
Extension methods cannot be dynamically dispatched. Consider casting the dynamic arguments or calling the extension method without the extension method syntax.
Que dois-je remplir comme premier paramètre de la Actionlink?
OriginalL'auteur francisMi | 2014-01-09
Vous devez vous connecter pour publier un commentaire.
C'est parce que
car
est dynamique, de sorte qu'il ne sait pas ce que l'extension appropriée méthode pourrait être. Si vous avez jetétitle
àstring
, etid
àobject
, ça va être bien:Votre autre option est de faire un typage fort ViewModel.
OriginalL'auteur John Gibb
Tenter d'affecter votre
car.title
à une variable d'abord, puis utiliser cette variableOriginalL'auteur Selman Genç
Essayez plutôt ceci:
ps je voudrais aussi faire de vos propriétés en Majuscules plutôt que diminuer.
Essayez-le au-dessus de la place, désolé raté le foreach out
OriginalL'auteur hutchonoid