首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MVC3必需的注解ErrorMessage文本未插入到输入标签的属性数据中-val-必需

MVC3必需的注解ErrorMessage文本未插入到输入标签的属性数据中-val-必需
EN

Stack Overflow用户
提问于 2012-11-15 22:07:34
回答 1查看 789关注 0票数 0

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

我的cshtml页面是

代码语言:javascript
复制
<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>

}

我已经删除了所有无关的内容。

我的模型.cs源码是

代码语言:javascript
复制
using System;
using Iesi.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace Technolog.Rma.Business.Domain
{
    [Serializable]
    public class RepairBatch
    { 

        [Required(ErrorMessage = "Please enter a order number.")]
        [StringLength(30)]
        [Display(Name ="Order number")]
        public virtual string CustomerOrderNumber { get; set; }

        public RepairBatch()
        {
            CustomerOrderNumber = "";
        }

        public virtual void copy(RepairBatch rb){
            this.CustomerOrderNumber = rb.CustomerOrderNumber;
        }
    }
}

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

代码语言:javascript
复制
<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属性具有由MVC3框架返回的罐装文本,而不是我使用required属性在customerordernumber属性上指定的errormessage。

我使用的是Visual Studo 2010 SP1和MVC3 2011年4月的工具更新。我也在使用nhibernate 3.2和spring.net 1.3.2

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

20/11/2012更新

我使用了以下解决方法来显示正确的验证消息

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

Jabbar Azam

EN

Stack Overflow用户

发布于 2012-11-16 00:43:34

我既没有使用nhibernate也没有使用spring.net,但是我确实注意到您的CustomerOrderNumber属性是虚拟的。你的模型类是从RepairBatch而不是RepairBatch本身派生的吗?我不相信当数据注解在基类上时,它们是无法识别的。(朋友们,如果我说错了,请告诉我!)

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13399162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档