C# @Html.ValidationMessage(项目)未显示

C# @Html.ValidationMessage(项目)未显示,c#,data-annotations,system.reflection,asp.net-mvc-5.2,.net-4.5.2,C#,Data Annotations,System.reflection,Asp.net Mvc 5.2,.net 4.5.2,我有以下课程: public分部类借方:Domain.EntitiesServices.IEFEntity { 公共借方() { } [必需(ErrorMessage=“naam字段是必需的。请指定它以继续。”)] 公共字符串naam{get;set;} 公共int id{get;set;} } 注意:需要使用propnaam。还请注意,它继承了Domain.EntitiesServices.IEFEntity。我有更多的类继承自Domain.EntitiesServices.IEFEntit

我有以下课程:

public分部类借方:Domain.EntitiesServices.IEFEntity
{
公共借方()
{ }
[必需(ErrorMessage=“naam字段是必需的。请指定它以继续。”)]
公共字符串naam{get;set;}
公共int id{get;set;}
}
注意:需要使用prop
naam
。还请注意,它继承了
Domain.EntitiesServices.IEFEntity
。我有更多的类继承自
Domain.EntitiesServices.IEFEntity
。我想重用我的partial,我成功了。验证工作正常,但验证消息不会显示

我有一个包含以下代码的主视图:


@LabelFor(model=>model.Debiteur.naam,htmlAttributes:new{@class=“controllabel col-md-2”})
@EditorFor(model=>model.Debiteur.naam,new{htmlAttributes=new{@class=“form control”})
@Html.ValidationMessageFor(model=>model.Debiteur.naam,“,new{@class=“text danger”})
这将生成以下HTML:

<div class="form-group ">
    <label class="control-label col-md-2" for="Debiteur_naam">naam</label>
    <div class="col-md-10">
        <input class="form-control text-box single-line" data-val="true" data-val-required="The naam field is required. Please specify it to continue." id="Debiteur_naam" name="Debiteur.naam" type="text" value="Deb 19" />
        <span class="field-validation-valid text-danger" data-valmsg-for="Debiteur.naam" data-valmsg-replace="true"></span>
    </div>
</div>

现在我创建了下面的局部视图(不要介意if语句,它很复杂,但它可以工作,并且不是问题的一部分!):

@model Domain.EntitiesServices.IEFEntity
@{string pk=Model.GetPkName();}
@foreach(Model.GetType().GetProperties()中的变量项)
{
if(item.Name!=pk&&item.PropertyType.Name.ToLower().Contains(“icollection”)!=true&&item.getMethod().IsVirtual!=true)
{
@Html.Label((字符串)ViewBag.SelectedTable+“”+item.Name,item.Name,htmlAttributes:new{@class=“control Label col-md-2”})
@Html.Editor(item.Name,”,(string)ViewBag.SelectedTable+“+item.Name,new{htmlAttributes=new{@id=ViewBag.SelectedTable+”,@class=“form control”}})
@Html.ValidationMessage((字符串)ViewBag.SelectedTable+“+”item.Name,新的{@class=“text danger”})
}
}
我的主要观点是:

@{Html.RenderAction(“视图名”、“控制器名”,新的{EFEntity=Model.Debiteur,selectedTable=“Debiteur”});}
它会生成完全相同的HTML:

<div class="form-group ">
    <label class="control-label col-md-2" for="debiteur_naam">naam</label>
        <div class="col-md-10">
        <input class="form-control text-box single-line" data-val="true" data-val-required="The naam field is required. Please specify it to continue." id="debiteur_naam" name="debiteur.naam" type="text" value="Deb 19" />
        <span class="field-validation-valid text-danger" data-valmsg-for="debiteur.naam" data-valmsg-replace="true"></span>
    </div>
</div>

纳姆

但是现在,当我使用空的
naam
道具提交表单时,验证成功运行(即,没有保存任何内容,表单被发回)但我没有看到错误消息

它运行良好,如果我满足数据验证要求,我可以编辑和保存我的数据!如果不是,我希望显示错误消息,这是我无法处理的事情。如果出现错误,您可以发布div的HTML输出吗?它们在有效时看起来是一样的,比较无效的输出也很好当我发布一个错误值(empthy string)时,它会产生完全相同的HTML,ie在
-标记之间没有任何内容…我反复检查了4次…我在这篇文章中使用了公认的答案:但由于我是从一个部分开始工作的,我必须证明它可以使模型绑定工作,并且它确实可以接受验证消息…它工作得很好,如果我满足数据验证要求,我可以编辑和保存我的数据!如果不是,我希望显示错误消息,这是我无法处理的事情。如果出现错误,您可以发布div的HTML输出吗?它们在有效时看起来是一样的,比较无效的输出也很好当我发布一个错误值(empthy string)时,它会产生完全相同的HTML,ie在
-标记之间没有任何内容…我反复检查了4次…我在这篇文章中使用了公认的答案:但是由于我是从一个部分开始工作的,我必须证明它可以使模型绑定工作,并且它确实可以接受验证消息。。。
<div class="form-group ">
    <label class="control-label col-md-2" for="debiteur_naam">naam</label>
        <div class="col-md-10">
        <input class="form-control text-box single-line" data-val="true" data-val-required="The naam field is required. Please specify it to continue." id="debiteur_naam" name="debiteur.naam" type="text" value="Deb 19" />
        <span class="field-validation-valid text-danger" data-valmsg-for="debiteur.naam" data-valmsg-replace="true"></span>
    </div>
</div>