MvcContrib GridModel : GridModel で ActionSyntax を実行することは可能ですか? この記事を読みましたが、非常に便利ですが、これを適用することはできません。最新の MVCContrib で「.Action()」が削除されたかどうかはわかりません。何らかの理由でこれにアクセスできないためです。
編集リンクの ActionLink をグリッド モデルに入れる方法はありますか?
ありがとうございました
MvcContrib GridModel : GridModel で ActionSyntax を実行することは可能ですか? この記事を読みましたが、非常に便利ですが、これを適用することはできません。最新の MVCContrib で「.Action()」が削除されたかどうかはわかりません。何らかの理由でこれにアクセスできないためです。
編集リンクの ActionLink をグリッド モデルに入れる方法はありますか?
ありがとうございました
古い方法は削除されたようです。
今すぐそれを行う方法は次のとおりです。
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 からのコメントを参照)
補足として、最近の変更である .DoNotEncode() は廃止されたため、 .Encode(false) を使用してください
まず、@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;
同じ問題に直面している人の助けになることを願っています!