Asp.net MVC 3 Required annotation ErrorMessage文本未插入到我的输入标记所需的属性数据val中

Asp.net MVC 3 Required annotation ErrorMessage文本未插入到我的输入标记所需的属性数据val中,asp.net,asp.net-mvc-3,Asp.net,Asp.net Mvc 3,我的模型中有一个必需的属性,带有errormessage,当用户没有为此属性输入任何文本时,不会显示errormessage文本 我的cshtml页面是 <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" ty

我的模型中有一个必需的属性,带有errormessage,当用户没有为此属性输入任何文本时,不会显示errormessage文本

我的cshtml页面是

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>



@using (Html.BeginForm("Index", "Booking", FormMethod.Post, new { @class = "form-horizontal" }))
{
    <fieldset>

        <div class="control-group">
        @Html.LabelFor(m => m.CustomerOrderNumber, "", "", new { @class = "control-label" }) 
            <div class="controls">
            @Html.TextBoxFor(m => m.CustomerOrderNumber) @Html.ValidationMessageFor(m => m.CustomerOrderNumber)
            <p class="help-block">This is a mandatory field.</p>
            </div>
        </div>

        <input type="submit" value="Next" class="btn btn-primary"/>
    </fieldset>

}
当我在浏览器中查看返回的html时,我看到客户订单号输入框的以下html

<div class="control-group">
    <label class="control-label" for="CustomerOrderNumber">Order number</label> 
    <div class="controls">
    <input data-val="true" data-val-required="&amp;#39;CustomerOrderNumber&amp;#39; must not be empty." id="CustomerOrderNumber" name="CustomerOrderNumber" type="text" value="" /> <span class="field-validation-valid" data-valmsg-for="CustomerOrderNumber" data-valmsg-replace="true"></span>
    <p class="help-block">This is a mandatory field.</p>
    </div>

订单号

这是一个必填字段

data val required属性包含MVC 3框架返回的固定文本,而不是我使用required属性在customerordernumber属性上指定的errormessage

我正在使用Visual Studo 2010 SP1和MVC 3 2011年4月工具更新。我还使用了nhibernate 3.2和spring.net 1.3.2

有没有人遇到过这个问题或有什么建议

2012年11月20日更新

我使用以下变通方法来显示正确的验证消息

@Html.TextBoxFor(m=>m.CustomerOrderNumber,new{data_val_required=“请输入订单号”})@Html.ValidationMessageFor(m=>m.CustomerOrderNumber)


Jabbar Azam

我既不使用nhibernate也不使用spring.net,但我注意到您的
CustomerOrderNumber
属性是虚拟的。您的型号一级是否源自
RepairBatch
而非
RepairBatch
本身?我不相信当数据注释位于基类上时会被识别。(伙计们,如果我错了,请告诉我!)

你好,安,nhibernate要求财产是虚拟的。我的想法是,如果虚拟语句是一个问题,那么实际的[必需的]注释将不起作用,但它确实起作用。您知道,很多属性都被假定为元数据类的一部分,而不是类本身。如果您有时间,可以尝试为
RepairBatch
创建一个元数据类,看看这是否会有所不同。想一想,你好。很抱歉迟了答复。周末和时区妨碍了我们。我为Repairbatch创建了一个元类,但仍然收到相同的错误。然而,我有一个黑客(解决办法),我将尝试。我会告诉你发生了什么
<div class="control-group">
    <label class="control-label" for="CustomerOrderNumber">Order number</label> 
    <div class="controls">
    <input data-val="true" data-val-required="&amp;#39;CustomerOrderNumber&amp;#39; must not be empty." id="CustomerOrderNumber" name="CustomerOrderNumber" type="text" value="" /> <span class="field-validation-valid" data-valmsg-for="CustomerOrderNumber" data-valmsg-replace="true"></span>
    <p class="help-block">This is a mandatory field.</p>
    </div>