asp.net mvc 中关于验证问题data-val-number="The field 部门号 must be a number

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net mvc 中关于验证问题data-val-number="The field 部门号 must be a number相关的知识,希望对你有一定的参考价值。

<input data-val="true" data-val-number="The field 部门号 must be a number." data-val-required="部门号 字段是必需的。" id="DepartmentID" name="DepartmentID" type="hidden" value="1" />

请问"data-val-number="The field 部门号 must be a number." 是哪个文件中生成来的?如何修改成" data-val-number="部门号必须是个数字."
我的意思是:验证的提示字符在哪个文件里.

楼上的回答不对。
正确的做法是在字段上增加RegularExpression特性,并指定ErrorMessage。
比如
[RegularExpression(@"\d+", ErrorMessage="部门号必须是个数字")]
public int DepartmentID get; set;
参考技术A 这个是默认的,System.ComponentModel.DataAnnotations里面的Required特性。
如果需要更改提示信息,给Required指定ErrorMessage就行了
比如
[Required]
public int ExtractionRequireNumber get; set;

改成

[Required(ErrorMessage = "自定义提示信息")]
public int ExtractionRequireNumber get; set; 追问

我想知道是 Unobtrusive javascript in ASP.NET MVC 3 里实现的么?
怎么实现的啊.如何修改?

参考技术B 在界面设计上找到这个控件,右键找到其属性,那个ErrorMessage属性就是提示的信息。不知道是你想要的答案否追问

我想知道是 Unobtrusive JavaScript in ASP.NET MVC 3 里实现的么?
怎么实现的啊.如何修改?

追答

不是的啊!我们用的是VS2005,可能不是你要的答案吧!

追问

哦.我用的是visual studio 2010 asp.net mvc 3

ASP .NET MVC5 中的 CORS

【中文标题】ASP .NET MVC5 中的 CORS【英文标题】:CORS in ASP .NET MVC5 【发布时间】:2015-01-28 20:37:12 【问题描述】:

我有一个 MVC 项目,其中有几个我想公开跨域的 JSON 控制器方法。不是整个网站,只有这两种方法。

我基本上想要这篇文章中关于 cors 的确切内容:

http://enable-cors.org/server_aspnet.html

但是,问题是我有一个常规的 MVC 项目,而不是一个 WEB API,这意味着我无法按照注册的步骤进行操作

public static void Register(HttpConfiguration config)

    // New code
    config.EnableCors();

方法,因为它不在我的 MVC 项目中。

虽然它是一个 MVC 项目,但有没有办法使用这个库?

我知道我可以通过 web.config 使用:

<httpProtocol>
      <customHeaders>
        <clear />
        <add name="Access-Control-Allow-Origin" value="http://www.domain.com" />
      </customHeaders>
</httpProtocol>

但我不想公开所有方法,我想指定多个域(2 个域)来访问我的方法...

【问题讨论】:

Setting Access-Control-Allow-Origin in ASP.Net MVC - simplest possible method的可能重复 是的,我已经看到了,但这基本上与添加 唯一的问题是我想声明 2 个可以访问我的 json 服务的域,而不仅仅是所有 () 或 1 个特定的.... 【参考方案1】:

如此处所述:Setting Access-Control-Allow-Origin in ASP.Net MVC - simplest possible method

您应该只创建一个操作过滤器并在那里设置标题。您可以在任何您想要的操作方法上使用此操作过滤器。

public class AllowCrossSiteJsonAttribute : ActionFilterAttribute

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    
        filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*");
        base.OnActionExecuting(filterContext);
    

如果你想添加多个域,你不能只是多次设置标题。在您的操作过滤器中,您需要检查请求域是否来自您的域列表,然后设置标题。

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    
        var domains = new List<string> "domain2.com", "domain1.com";

        if (domains.Contains(filterContext.RequestContext.HttpContext.Request.UrlReferrer.Host))
        
            filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*");
        

        base.OnActionExecuting(filterContext);
    

【讨论】:

Tjis 很有用,因为这样我就可以将它限制为仅用于我想要公开的方法,但是,我想允许两个不同的域..不是全部 (*) 而不仅仅是一个 (www.domain .com) 我可以为来源添加多个标题吗?例如:filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allo‌​w-Origin", "domain1.com"); filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allo‌​w-Origin", "domain2.com"); @user4309587 你不能从Request 获取域然后有条件地添加正确的标头值吗? 很好的答案!非常感谢你……我的代表不允许我给你投票……:( 这样进行域检查... if (!String.IsNullOrEmpty(domains.FirstOrDefault(s => s.Contains(filterContext.RequestContext.HttpContext.Request.UrlReferrer.Host)))) / /(filterContext.RequestContext.HttpContext.Request.UrlReferrer.Host)) 不适用于 Chrome/Firefox 获得 302... 见 ***.com/questions/35309831/…

以上是关于asp.net mvc 中关于验证问题data-val-number="The field 部门号 must be a number的主要内容,如果未能解决你的问题,请参考以下文章

asp.net mvc源码分析-ModelValidatorProviders 客户端的验证

将 Twitter 引导验证样式和消息应用于 ASP.NET MVC 验证

在Visual Studio 2010中关于asp.net的验证码登录调试时界面出现乱码怎么回事?急!!!

ASP.NET MVC 4 混合认证模式

如何在 ASP.Net MVC Identity 2 中更改密码验证?

Jquery 验证单击提交按钮两次 ASP.Net 核心 MVC 项目