/ / Upraviť odkazy v GridModel (MVCContrib) - asp.net-mvc, model, grid, mvccontrib, html.actionlink

Upraviť odkazy v GridModel (MVCContrib) - asp.net-mvc, model, grid, mvccontrib, html.actionlink

MvcContrib GridModel: Je možné vykonať ActionSyntax v GridModel Čítal som tento článok a je to celkom užitočné, ale nemôžem ho použiť. Neviem, či v najnovšom MVCContrib odstránili „.Action ()“, pretože k tomu nejako nemám prístup.

Existuje nejaký spôsob, ako môžem vložiť ActionLink odkazu na úpravu do mriežkového modelu?

Ďakujem

odpovede:

4 pre odpoveď č. 1

Zdá sa, že stará metóda bola odstránená.

Teraz to urobíte takto:

VB.NET

Najskôr odovzdáte objekt Html do triedy gridmodel cez konštruktor, potom ho môžete použiť z triedy 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

Potom to z vášho pohľadu predáte cez konštruktor:

<%=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();
}
}

Vyhliadka:

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

Referenčné číslo: http://www.jeremyskinner.co.uk/2009/02/22/rewriting-the-mvccontrib-grid-part-2-new-syntax/ (pozri komentár od Amitabh)


1 pre odpoveď č. 2

Ako vedľajšia poznámka, novšia zmena, .DoNotEncode () je teraz zastaraná, preto použite .Encode (false)


0 pre odpoveď č. 3

Najprv veľké ďakujem @ Andrew za jeho odpoveď: Amitabhova otázka a Skinnerova odpoveď naozaj vyriešil moje pochybnosti. S ASP.NET MVC 4 som sa ťažko snažil zistiť, prečo to v mriežkovom modeli nefunguje:

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

Prečo? Pretože som nepridával potrebné pomocou direktívy:

using System.Web.Mvc.Html;

Mal som iba toto použitie, ktoré navrhol Visual Studio Intellisense:

using System.Web.Mvc;

Dúfam, že to pomôže každému, kto čelí rovnakému problému!