我有一个动态视图,这将显示已传递给它的任何模型。
@model dynamic
@using (Html.BeginForm("Edit", null, FormMethod.Post, new { id="FrmIndex" }))
{
@Html.ValidationSummary(true);
@Html.EditorForModel()
<input type="submit" value="Edit" />
}
说我的模型之一是 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”。而且我不能使用此处提供的答案,如何从 @Html.EditForModel() 中排除字段,但使用 Html.DisplayForModel() 显示
因为 IMetadataAware 需要 System.Web.Mvc 命名空间,我无法将其添加到具有 poco 模型类的 Biz 项目中。我也不能使用 [HiddenInput(DisplayValue = false)] 因为这也是 web.mvc 的一方
有人可以给出解决方案吗?