不可为空类型 'System.DateTime' ,ASP.NET MVC

2023-12-02

我有一个注册页面,由于内容问题,我们必须要求并强制申请人提供出生日期。所以按理说这个字段不能为空。

我使用 jQuery 在文本框上加水印,告诉他们可以单击它并获取 jQuery UI 日历对象来选择日期。选择日期效果很好,这不是问题。

在测试中,如果我尝试在不选择日期的情况下提交表单,则会收到以下错误...

The parameters dictionary contains a null entry for parameter 'birthdate' of non-nullable type 'System.DateTime' for method 'System.Web.Mvc.ActionResult Register(System.String, System.String, System.String, System.String, Boolean, System.DateTime)' in 'Controllers.MembershipController'. To make a parameter optional its type should be either a reference type or a Nullable type.
Parameter name: parameters 

我不想对日期进行硬编码,它为空的目的是强制验证,以便他们必须选择它。有任何想法吗?我包括了负责区域的代码。真正令人沮丧的是,异常在到达 Register(parameters) 方法之前就被抛出了。 ModelState.IsValid 永远不会被调用。我尝试过 try/catch 块但无济于事。

        <p>             
            <label for="birthday">Birthdate:</label><br />
            <%= Html.TextBox("birthdate", "Select month, year, and date last." , new { @class = "text watermarkOn", @tabindex = "5" }) %>
        </p>

    public ActionResult Register()
    {
        return View();
    } 

    [CaptchaValidator]
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Register(string name, string email, string password, string validation, bool agreement, DateTime birthdate)
    {

        // attempt to validate the registration state, and if it is invalid, 
        // populate the ruleviolations and redisplay the content with the errors.
        if (ModelState.IsValid)
        {
        }

        return View();
    }

    private bool ValidateRegistration(string name, string email, string password, string validation, DateTime birthdate)
    {
        if (String.IsNullOrEmpty(name))
        {
            ModelState.AddModelError("name", "You must specify a name.");
        }
        if (String.IsNullOrEmpty(email))
        {
            ModelState.AddModelError("email", "You must specify an email address.");
        }
        if (password == null || !Text.RegularExpressions.Password(password) )
        {
            ModelState.AddModelError("password",
                String.Format(System.Globalization.CultureInfo.CurrentCulture,
                     "You must specify a password of {0} or more characters, without any whitespace characters.",6));
        }
        if (!String.Equals(password, validation, StringComparison.Ordinal))
        {
            ModelState.AddModelError("_FORM", "The new password and confirmation password do not match.");
        }
        return ModelState.IsValid;
    }
}

让birthdate参数为可为空的DateTime,即DateTime?,然后检查它是否为空,设置模型错误,并在为空时重新渲染带有错误的视图。

[CaptchaValidator]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Register(string name, string email, string password, string validation, bool agreement, DateTime? birthdate)
{
    ValidateRegistration( name, email, password, validation, agreement, birthdate );           
    if (ModelState.IsValid)
    {
    }
    return View();
}

private bool ValidateRegistration(string name, string email, string password, string validation, DateTime? birthdate)
{
     if (!birthdate.HasValue)
     {
         this.ModelState.AddModelError( "birthdate", "You must supply a birthdate." );
     }

     ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不可为空类型 'System.DateTime' ,ASP.NET MVC 的相关文章

  • ASP.NET MVC,Bootstrap Tables,获取每列的值

    在 ASP NET MVC 中 我有一个操作 它接受有关行和列的用户输入 然后导航到根据用户输入生成所需行数和列数的操作 如下所示 Views div class container style width 1px div class ro
  • 在 asp.net mvc 4 中使用 LinkedIn OAuth“登录失败”

    我正在查看 asp net mvc 4 附带的默认 OAuth 实现 它绝对令人印象深刻 因为我所要做的就是在 AuthConfig cs 中添加这一行 OAuthWebSecurity RegisterLinkedInClient key
  • 你把你的验证放在 asp.net mvc 3 的哪里?

    ASP NET MVC 中一种常见的推荐做法是您不应该将您的商业模式发送到您的视图中 http lostechies com jimmybogard 2009 06 30 how we do mvc view models 相反 您应该创建
  • MVC3 TextBoxFor 带有编码文本

    有没有办法将 TextBoxFor 助手与编码文本一起使用 例如 当使用 MVC3 With Razor 视图引擎的以下帮助程序时 Html TextBoxFor model gt model Description 并且对 model D
  • 如何在ListBox中加载大量数据? ASP.NET MVC 应用程序

    我正在使用 ASP NET MVC 应用程序 要求用户能够从可能包含超过 30 000 个条目的列表框中选择一个项目 是否有一种使用 Ajax 调用来填充此 ListBox 内容的动态方法 效果良好 我是否最好只填充服务器上的 ListBo
  • 将 Javascript 类数组传递给 MVC 控制器?

    我正在尝试将一系列服务传递给我的控制器 我尝试了很多不同的方法来让它工作 在进入控制器之前序列化数据 序列化每个服务 唯一有效的方法是将控制器参数更改为字符串并序列化数组 然后使用 JsonConvert 但我 d 宁愿不这样做 使用指定的
  • 显示 PDF ASP.Net MVC

    我的桌面上有一个文件用于测试 我试图在如下视图中显示它 ViewBag Title ShowFile h2 ShowFile h2 我用于控制器的代码是 HttpGet public ActionResult ShowFile string
  • ASP.NET MVC 显示配置文件中的用户名

    以下是LogOn来自 Visual Studio 创建的标准默认 ASP NET MVC 项目的用户控件 登录用户控件 ascx Welcome b b
  • 从 .Net MVC 视图获取 HTML,而不在浏览器中实际渲染视图?

    我的控制器中有一个 ActionResult 我想从中发送 HTML 电子邮件 该电子邮件的正文是由视图生成的 我可以在传递模型时获取视图的结果并避免将其发送到浏览器 而不是在控制器中使用 2 个 actionresults 方法吗 Mvc
  • 如何使用自定义 ValidationAttribute 来确保两个属性匹配?

    我们使用 xVal 和标准DataAnnotationsValidationRunner描述here http blog stevensanderson com 2009 01 10 xval a validation framework
  • 缺少添加控制器/视图的上下文菜单

    我已将 ASP NET MVC 4 集成到现有的 asp net 网站中 两者都工作正常 但我没有看到任何菜单 快捷方式来在 Visual Studio IDE 中创建控制器 视图 这些仅适用于 ASP NET MVC 模板吗 这些仅适用于
  • Asp.net MVC 路由 - 防止通过约束路由到 XML 文件

    我正在尝试找到一种方法来阻止用户访问特定的 xml 文件 我尝试过做 routes MapRoute SiteMap SiteMap siteMap xml new new isLocal new LocalHostRouteConstra
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 良好的 WiX 编辑器 [重复]

    这个问题在这里已经有答案了 我目前正在开发一个使用 WiX 创建 MSI 的项目 我过去在 Sourceforge 上使用 WiXEdit 来管理包含在 WiX 项目中的文件 因为它比直接操作 XML 稍微容易一些 但它仍然有点笨重 有谁知
  • Elmah 不会在 MVC 应用程序中记录 http post 请求的异常 - 如果请求包含 XML

    我在 MVC4 RC 应用程序中遇到了一个奇怪的问题 在 NET 4 0上运行 我刚刚设置 Elmah 来记录异常 错误 我基本上安装了埃尔玛MVC and elmah sqlserverNuGet 包 分别为2 0 0和1 2版本 它似乎
  • 从另一台设备访问 Azure 模拟器

    我有两个不同的项目 Windows Phone 8 应用程序 我正在真实的物理开发设备上运行 Azure 云服务 其中包含一个简单的 WebRole 端点 其中包含 ASP NET MVC WebAPI 我的目标很简单 使用从真实设备运行的
  • 有没有办法让 DefaultModelBinder 在绑定到 List 时忽略空项

    我有一个场景 我想更改 DefaultModelBinder 绑定到枚举列表的方式的行为 我有一个枚举 public enum MyEnum FirstVal SecondVal ThirdVal 和一个模型类 public class M
  • SignalR 在子域上协商 404

    我创建了一个小型 MVC SignalR 应用程序 但在子域下的服务器上运行时遇到问题 http chat mydomain com http chat mydomain com 它映射到名为 chat 的文件夹 我还使用 SignalR
  • 在 Dapper 中处理 Oracle 数据库连接

    我正在尝试连接到 Oracle 数据库并尝试执行查询 下面是我的模型类 using System using System Collections Generic using System Linq using System Web usi
  • orchard cms路由问题

    我创建了一些自定义内容类型 其中包括路线部分 以便我的内容管理员可以编辑项目的别名 我没有运气配置一条路线 使我自己的控制器能够为这些项目的请求提供服务 核心 Routable 模块中到 ItemController 的路径的路由优先级为

随机推荐

  • 查询字符串参数长度问题。 HTTP 错误 400

    谁能告诉我我的网址问题 http www advantarealty net Search 公寓 单户住宅 Townhome PropertyType True ForMap 8 Zoom 81 3043212890625T29 09937
  • CSS - 弯曲路径中的动画对象

    我只想通过弯曲的路径为我的图像制作动画 像这样 我使用绝对位置进行定位 做了一些研究 发现 css 转换可以完成这项工作 可以通过直线轻松完成 但弯曲的路径 我尝试与 csstransform origin transform rotate
  • Glassfish 上的单线程 MDB

    我有许多 MDB 在 Glassfish 3 1 2 2 上运行 由于其中一个 MDB 的工作性质 我需要将其设为单线程 我看了看调音指南 虽然将最大池大小设置为 1 确实解决了问题 但这也意味着所有其他 MDB 都是单线程的 我真正想要实
  • 您是否必须使用比较函数对数字数组进行排序?

    我的印象是 为了对数字数组进行排序 您必须执行以下操作 var numbers 4 1 2 3 function compare a b return a b numbers sort compare 但是 我发现以下方法似乎有效 var
  • ggplot2position='dodge' 生成的条形太宽

    我有兴趣生成一个位置为 dodge 且填充为某个因素的直方图 即每个条形 组内不同子组的并排条形 但是 ggplot2 给了我类似的东西第一个情节在这里 它的最右边的栏太宽 没有为空组保留空间 这是我想要的 这是一个简单的案例 df dat
  • 负边距和背景

    在下面的标记中 我只想设置负边距 textdiv 使其出现在顶部 image div div class wrap div class image img src imgage jpg div div class text text wit
  • 如何传递指向构造函数的函数指针?

    我正在致力于在 C 中实现反射机制 我的代码中的所有对象都是 Object 我自己的通用类型 的子类 其中包含 Class 类型的静态成员数据 class Class public Class const std string n Obje
  • Bootstrap 日期选择器禁用没有当前日期的过去日期

    我想禁用当前日期之前的所有过去日期 而不是当前日期 我正在尝试通过引导日期选择器库 引导日期选择器 并使用以下代码 date datepicker startDate new Date 效果很好 但直到今天它才被禁用 例如 如果今天是 20
  • Python ctypes 指向结构的指针作为标识符,无需成员访问

    我有两个不同的 C 函数 我想将它们与 Python 中的 ctypes 一起使用 一个函数正在建立连接并返回指向结构的指针 该指针应用作第二个函数中的参数以重用已建立的连接 C Code customStruct connect cust
  • pandas.qcut 和 pandas.cut 有什么区别?

    文档说 http pandas pydata org pandas docs dev basics html 可以使用 cut 基于值的 bin 和 qcut 基于样本分位数的 bin 函数对连续值进行离散化 对我来说听起来很抽象 我可以看
  • 被 FileNotFound 异常难住了

    我想做的就是从文本文件导入数据 该文件位于 C temp text txt 但是 我不断收到文件未找到错误 我到底做错了什么 public static void main String args throws IOException St
  • 当应用程序是服务时,SetWinEventHook 回调不起作用

    我有一个在 NET 4 0 中制作的应用程序 它挂钩 win 事件并使用回调来捕获窗口事件 如下所示 import the methos from the dll DllImport user32 dll SetLastError true
  • 如何使用android的seekbar来显示时间选择?

    I have tried seekbar normal task to display the time from 1 to 12 but I have little different requirement 请有人可以帮助我获得像这样的
  • 无法从 .winmd 文件获取类型

    我想在给定路径的 winmd 文件中输出类型 我将 winmd 文件从 Windows 8 Developer Preview 计算机复制到我的开发计算机 我编写了一个小型测试应用程序 使用 C NET 4 0 而不是 4 5 它尝试在运行
  • MSGestureHold 被 Windows Phone 8.1 的 WebBrowser 控件忽略

    我正在更新我的浏览器应用程序以支持 Windows Phone 8 1 我注意到MSGestureHold事件没有被引发 要重现此错误 下载MS 迷你浏览器示例 在Visual Studio 2013中将项目升级为WP8 1项目并添加IsS
  • C语言中的随机数生成器是如何工作的?

    我正在尝试生成 0 到 40 含 之间的随机数 所以我实现的代码是这样的 y rand 41 然而 每次我单击 编译 并单击 运行 它输出相同的随机数 例如 我循环运行了这个 for i 0 i lt 4 i y rand 41 print
  • StringIO 和 BytesIO 有什么区别?

    StringIO 和 ByteIO 有什么区别 您会将每一种用例用于哪些类型的用例 正如名字所说 StringIO与str数据 同时BytesIO与bytes data bytes是原始数据 例如65 同时str解释此数据 例如使用 ASC
  • 将 SimpleCursorAdapter 与 Spinner 一起使用?

    我有一个数据库 其中表 mytable 有 2 列 id sampletext 我想查询示例文本的不同值并使用 SimpleCursorAdapter 提供给 Spinner 这是尝试过的 String cols new String sa
  • 找不到 SQL Server 配置管理器

    安装SQL Server 2008后 我找不到SQL Server Configuration Manager in Start SQL Server 2008 Configuration Tools menu 我应该做什么来安装这个工具
  • 不可为空类型 'System.DateTime' ,ASP.NET MVC

    我有一个注册页面 由于内容问题 我们必须要求并强制申请人提供出生日期 所以按理说这个字段不能为空 我使用 jQuery 在文本框上加水印 告诉他们可以单击它并获取 jQuery UI 日历对象来选择日期 选择日期效果很好 这不是问题 在测试