5

MvcContrib GridModel : GridModel で ActionSyntax を実行することは可能ですか? この記事を読みましたが、非常に便利ですが、これを適用することはできません。最新の MVCContrib で「.Action()」が削除されたかどうかはわかりません。何らかの理由でこれにアクセスできないためです。

編集リンクの ActionLink をグリッド モデルに入れる方法はありますか?

ありがとうございました

4

3 に答える 3

4

古い方法は削除されたようです。

今すぐそれを行う方法は次のとおりです。

VB.NET

まず、Html オブジェクトをコンストラクターを介して gridmodel クラスに渡します。次に、それを 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

次に、ビューでコンストラクターを介して渡します。

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

C#

グリッドモデル:

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

意見:

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

参照: http://www.jeremyskinner.co.uk/2009/02/22/rewriting-the-mvccontrib-grid-part-2-new-syntax/ ( Amitabh からのコメントを参照)

于 2010-03-31T23:37:19.537 に答える
1

補足として、最近の変更である .DoNotEncode() は廃止されたため、 .Encode(false) を使用してください

于 2010-10-14T20:16:04.310 に答える
0

まず、@Andrew の回答に感謝します。Amitabh質問Skinner の回答は、私の疑問を本当に解決してくれました。とにかく、ASP.NET MVC 4 では、グリッド モデルでこれが機能しない理由を理解するのに苦労しました。

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

なんで?必要な using ディレクティブを追加していなかったため:

using System.Web.Mvc.Html;

私はVisual Studio Intellisenseによって提案されたこれだけを使用していました:

using System.Web.Mvc;

同じ問題に直面している人の助けになることを願っています!

于 2012-06-18T21:31:57.467 に答える