tag route net for data asp all asp.net-mvc model grid mvccontrib html.actionlink

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.