/ / Modifier les liens dans GridModel (MVCContrib) - asp.net-mvc, model, grid, mvccontrib, html.actionlink

Modifier des liens dans GridModel (MVCContrib) - asp.net-mvc, modèle, grille, mvccontrib, html.actionlink

MvcContrib GridModel: Est-il possible de faire ActionSyntax dans un GridModel J'ai lu cet article et il est assez utile mais je ne peux pas l'appliquer. Je ne sais pas si dans la dernière version de MVCContrib, ils ont supprimé le ".Action ()" car je ne peux pas y accéder.

Existe-t-il un moyen de mettre l'ActionLink du lien d'édition dans un modèle de grille?

Je vous remercie

Réponses:

4 pour la réponse № 1

Il semble que l'ancienne méthode ait été supprimée.

Voici comment procéder maintenant:

VB.NET

Tout d'abord, vous passez l'objet Html dans la classe gridmodel via le constructeur, puis vous pouvez l'utiliser à partir de la classe gridmodel.

Imports MvcContrib.UI.Grid

Public Class PersonGridModel
Inherits GridModel(Of Person)

Public Sub New(ByVal html as HtmlHelper)
Column.For(Function(u) html.ActionLink("Edit", "Edit", "Person", New With {.id = u.PersonId}, Nothing)).DoNotEncode()
End Sub
End Class

Ensuite, selon vous, vous le passez par le constructeur:

<%=Html.Grid(Model).WithModel(New MemberRetentionTrackingSystem.InboundCallGridViewModel(Html))%>

C #

GridModel:

public class PersonGridModel : GridModel {
public PersonGridModel(HtmlHelper html) {
Column.For(u => html.ActionLink(“Edit”, “Edit”, “Person”)).DoNotEncode();
}
}

Vue:

< %= Html.Grid(ViewData.Model).WithModel(new PersonGridModel(Html)) %>

RÉFÉRENCE: http://www.jeremyskinner.co.uk/2009/02/22/rewriting-the-mvccontrib-grid-part-2-new-syntax/ (voir commentaire d'Amitabh)


1 pour la réponse № 2

En remarque, changement plus récent, .DoNotEncode () est désormais obsolète, alors utilisez .Encode (false)


0 pour la réponse № 3

Tout d'abord, merci beaucoup à @Andrew pour sa réponse: La question d'Amitabh et La réponse de Skinner vraiment résolu mon doute. Quoi qu'il en soit avec ASP.NET MVC 4, j'ai eu du mal à comprendre pourquoi cela dans un modèle de grille ne fonctionnait pas:

Column.For(hospital => html.ActionLink("View Details", "Show", "Foo")).Encode(false);

Pourquoi? Parce que je n’ajoutais pas la directive using nécessaire:

using System.Web.Mvc.Html;

Je n'avais que cette utilisation suggérée par Visual Studio Intellisense:

using System.Web.Mvc;

J'espère que cela aide toute personne confrontée au même problème!