asp.net mvc - route - Editar enlaces en GridModel(MVCContrib)
tag helpers asp net core (3)
Como nota al margen, cambio más reciente, .DoNotEncode () está en desuso ahora, así que use .Encode (falso)
MvcContrib GridModel: ¿Es posible hacer ActionSyntax en un GridModel ? He leído este artículo y es bastante útil, pero no puedo aplicarlo. No sé si en el nuevo MVCContrib eliminaron el ".Action ()" porque de alguna manera no puedo acceder a esto.
¿De alguna manera puedo poner ActionLink del enlace de edición en un modelo de cuadrícula?
Gracias
Parece que el método anterior ha sido eliminado.
He aquí cómo hacerlo ahora:
VB.NET
Primero, pasa el objeto Html a la clase gridmodel a través del constructor, luego puede usarlo desde la clase 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
Luego, en su opinión, lo pasa por el constructor:
<%=Html.Grid(Model).WithModel(New MemberRetentionTrackingSystem.InboundCallGridViewModel(Html))%>
DO#
GridModel:
public class PersonGridModel : GridModel {
public PersonGridModel(HtmlHelper html) {
Column.For(u => html.ActionLink(“Edit”, “Edit”, “Person”)).DoNotEncode();
}
}
Ver:
< %= Html.Grid(ViewData.Model).WithModel(new PersonGridModel(Html)) %>
REFERENCIA: http://www.jeremyskinner.co.uk/2009/02/22/rewriting-the-mvccontrib-grid-part-2-new-syntax/ (ver comentario de Amitabh )
Primero, muchas gracias a @Andrew por su respuesta : la pregunta de Amitabh y la respuesta de Skinner realmente resolvieron mi duda. De todos modos, con ASP.NET MVC 4 me costó trabajo averiguar por qué esto no funcionaba en un Grid Model:
Column.For(hospital => html.ActionLink("View Details", "Show", "Foo")).Encode(false);
¿Por qué? Porque no estaba agregando la directiva de uso necesaria:
using System.Web.Mvc.Html;
Solo tuve este uso sugerido por Visual Studio Intellisense:
using System.Web.Mvc;
Espero que ayude a cualquiera que tenga el mismo problema.