我有这个问题,我需要验证一个带有 ID 的模型,但我不想显示 ID,我试图把它放在一个隐藏字段中。
这是我的模型:
namespace MyApp.Models
{
public class ObjInfo
{
/// <summary>
/// Variable declaration.
/// </summary>
public int m_Id { get; set; }
[Required(ErrorMessage = "Obj Name is required.")]
[MaxLength(75)]
[Display(Name = "Obj Name")]
public string m_Name { get; set; }
[Display(Name = "Obj Symbol")]
public string m_SymbolText { get; set; }
(...) } }
我只放了有问题的字段和另一个字段。我的模型中还有其他不相关的数据。
现在这是我的这个模型的“创建”视图:
@model MyApp.Models.ObjInfo
@{
ViewBag.Title = "Create";
}
<h2>Create New Obj</h2>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>OBJ</legend>
@Html.HiddenFor(model => model.m_Id)
<div class="editor-label">
@Html.LabelFor(model => model.m_Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.m_Name)
@Html.ValidationMessageFor(model => model.m_Name)
</div>
(...)
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to obj list", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
因此,当我确认创建此 obj 时,ModelState 由于提供的 ID 始终返回 false,但我不能向用户显示此 ID,我需要它来解决管理问题。
简单地说,我认为我的隐藏字段中没有数据。但这无关紧要,因为我的 BD 无论如何都会给该对象一个正确的 ID。我该如何解决这个问题?
非常感谢。