У меня есть динамический вид, на нем будет отображена любая модель, которая была передана ему.Скрыть свойство модели в динамическом режиме
@model dynamic
@using (Html.BeginForm("Edit", null, FormMethod.Post, new { id="FrmIndex" }))
{
@Html.ValidationSummary(true);
@Html.EditorForModel()
<input type="submit" value="Edit" />
}
Say один из моей модели PartyRole
public partial class PartyRole
{
[Key, Display(Name = "Id"]
[UIHint("Hidden")]
public int PartyRoleId { get; set; }
[UIHint("TextBox")]
public string Title { get; set; }
}
Я не хочу, чтобы показать Id в режиме редактирования, так что я прячусь его в Hidden.cshtml editorfortemplate, как показано ниже:
@Html.HiddenFor(m => Model)
Это скрывает редактор, но не ярлык «Id». И я не могу использовать ответы, предоставленные здесь, How to exclude a field from @Html.EditForModel() but have it show using Html.DisplayForModel()
потому IMetadataAware требует System.Web.Mvc имен, которые я не могу добавить в мой Biz проектов, имеющих РоКо классы модели. Я не могу использовать [HiddenInput (DisplayValue = false)] также потому, что это также участник web.mvc
может кто-нибудь дать решение?
@DylanSlabbinck, боюсь, я не получил вас. Это в значительной степени мои взгляды. Я нигде не использовал Label. вы можете разработать? – mmssaann
Можете ли вы использовать [ScaffoldColumn (false)]? Это вытолкнет свойство из EditForModel(), но также вытолкнет его из DisplayForModel(). – Yellowfog
nope, scoffold не отображает столбец вообще. Нам нужен идентификатор, когда мы отправляем данные обратно контроллеру. Так что это должно быть скрытое поле в представлении. – mmssaann