ウェブユーザーコントロールの代わりにPartial Viewsを使用できます。部分モデルごとに個別のViewModelを使用し、部分モデルからメインViewModelを構成します。
剃刀のマークアップで条件を確認し、それに応じて部分/リンクをレンダリングすることができます。例えば
:
public class ReadOnlyDataViewModel {
public DateTime CreationDate { get; set; }
}
public class EditableDataViewModel {
public string Name { get; set; }
}
public class MainViewModel {
public ReadOnlyDataViewModel ReadOnlyData { get; set; }
public EditableDataViewModel EditableData { get; set; }
public bool HasEditPermission { get; set; }
}
_ReadOnlyData.cshtml
@model ReadOnlyDataViewModel
@Html.DisplayFor(m => m.CreationDate)
_EditableData.cshtml
@model EditableDataViewModel
@Html.EditorFor(m => m.Name)
異なるパーシャルでも編集可能なデータを表示するには、たとえば、同じViewModelにを使用することができます読み取り専用:
_EditableDataReadOnly.cshtmlが
@model EditableDataViewModel
@Html.DisplayFor(m => m.Name)
Main.cshtml
@model MainViewModel
@Html.Partial("_ReadOnlyData", Model.ReadOnlyData)
@if (Model.HasEditPermisson) {
@Html.Partial("_EditableData", Model.EditableData)
}
else {
@Html.Partial("_EditableDataReadOnly", Model.EditableData)
}
@* Conditional link *@
@if (Model.HasEditPermisson) {
@Url.Action("Edit", "MyController")
}
こんにちは。私たちのコミュニティの多くの女性は、ソフトウェアエンジニアに関する世俗的な前提を見るたびに、少し除外されているように感じています。私は、より歓迎的な環境のために、あなたの投稿に男性指向の挨拶と代名詞を追加することを避けることができますか?ありがとうございました。 – halfer