对具有多个提交的表单进行建模和验证

2023-12-14

我正在尝试找出使用 ASP.Net Core 2 建模和验证具有多个表单标签和多个提交按钮的表单的正确方法。我拥有的是一个表单,用户可以在其中输入用户名和密码并登录,或者输入他们的名字、姓氏和手机号码并注册。这是我的模型:

public class Landing
{
    [Required]
    public string Username { get; set; }
    [Required]
    public string Password { get; set; }
    [Required]
    public string FirstName { get; set; }
    [Required]
    public string LastName { get; set; }
    [Required]
    public string CellNumber { get; set; }
}

这是我的相关剃刀视图代码:

@model MyApp.ViewModels.Landing

<form method="post">
    <div>
        <input asp-for="Username" type="text" />
    </div>
    <div>
        <input asp-for="Password" type="password" />
    </div>
    <div>
        <input type="submit" value="Sign In" />
    </div>
</form>

<form method="post">
    <div>
        <input asp-for="FirstName" type="text" />
    </div>
    <div>
        <input asp-for="LastName" type="text" />
    </div>
    <div>
        <input asp-for="CellNumber" type="text" />
    </div>
    <div>
        <input type="submit" value="Sign Up" />
    </div>
</form>

现在我遇到的问题是我的验证。因为我所有的字段都标有[Required]属性,当我使用任一提交按钮提交表单时,它会验证所有 5 个字段。我想做的是验证UserName and Password仅当按下第一个提交按钮或验证时FirstName, LastName and CellNumber仅当按下第二个提交按钮时。我怎样才能实现这个目标?


我会将我的模型分成两类,然后使用ViewModel反而:

public class SignIn
{
    [Required]
    public string Username { get; set; }
    [Required]
    public string Password { get; set; }
}

public class SignUp
{
    [Required]
    public string FirstName { get; set; }
    [Required]
    public string LastName { get; set; }
    [Required]
    public string CellNumber { get; set; }
}

public class LandingViewModel
{
    public SignIn SignIn { get; set; }
    public SignUp SignUp { get; set; }
}

Then:

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

对具有多个提交的表单进行建模和验证 的相关文章

随机推荐

  • 用于选择和取消选择电子表格中所有其他复选框的复选框

    我有一个电子表格 其中包含每个行项目的复选框 我想在顶部放置一个复选框 当选择 取消选择电子表格时 该复选框将选择和取消选择电子表格中的所有其他复选框 以下是我到目前为止的代码 如果选择了 复选框 1 它将选择所有复选框 但如果取消选择 则
  • 如何使用 Roxygen 正确记录来自不同包的泛型的 S3 方法?

    我正在编写一个包 定义一个新类 测量员和print方法 即print surveyor 我的代码工作正常 我使用 roxygen 进行内联文档 但R CMD check发出警告 函数 方法的用途 文档对象 print surveyor 但不
  • 使用数据注释指定日期时间的格式?

    我的视图模型中有这个属性 DataType DataType DateTime public DateTime StartDate get set 如果我想显示日期 或用日期填充文本框 我有这些 每当显示日期时 都会显示如下 01 01 2
  • 为什么 psycopg2 INSERT 需要这么长时间才能循环运行以及如何加快速度?

    我正在尝试在 for 循环中使用 psycopg2 INSERT 将 source lat source long destination lat destination long 行从 Pandas 数据帧插入到 PostgreSQL 表
  • 将编码信息添加到 FOR XML 的结果中[重复]

    这个问题在这里已经有答案了 我有一个脚本 它在 SQL 2008 中使用 FOR XML 返回 XML 有没有办法在输出的开头添加版本和编码信息 最终 我计划将输出保存在文件中 例如 现在我的输出看起来像这样
  • Google Admin sdk 目录 403

    我正在尝试将 googleapi 2 0 与服务帐户一起使用 以在企业域上的用户上使用 Directory gooogle admin sdk 我已按照建议进行操作 this例如 并准备了一个 希望工作 的poc java代码 像这样的东西
  • Cocos2dx Android 构建错误:“arm-linux-androideabi-g++:没有这样的文件或目录”

    我下载了最新的cocos2dx 3 10 和NDK r11 我执行的时候出现以下错误cocos compile p android android studio Error AndroidDev android ndk r11 toolch
  • Delphi 代码格式化程序

    是否有任何实用程序可以重新格式化 Delphi 代码 EDIT 我使用的是德尔福2006 一些反馈 感谢所有回答这个问题的人 我一直在使用 JCF 代码格式化程序 它运行良好 我的代码已格式化为对象 Pascal 风格指南 您可以尝试 绝地
  • 如何使用 php 和 jquery 验证向导表单?

    简要说明这个简单的 jQuery 向导如何工作 会话用于保存每个步骤的数据 由一个会话变量组成 用于保存我们所处的步骤 由一个用于存储表单数据的会话变量组成 每次更改步骤时 我们都会使用 ajax 请求保存表单数据和会话中的步骤 如果数据被
  • Python-要列出的字符串

    我需要将列表转换为字符串并将字符串返回到列表 有一种 python 方法可以实现这种行为吗 l1 aa bb cc s str l1 l2 cast string to list s print l2 aa bb cc 使用序列化库 例如j
  • 这是在 ES6 中克隆对象的好方法吗?

    谷歌搜索 javascript克隆对象 带来了一些非常奇怪的结果 其中一些已经过时了 有些太复杂了 是不是很简单 let clone original 这有什么问题吗 这很好用于浅克隆 The 对象传播是 ECMAScript 2018 的
  • LLVM插入内在函数Cos

    我正在尝试将内部 cos 函数调用插入到 LLVM pass 我在 FunctionPass 中的代码 std vector
  • jquery 验证器 - 即使无效,表单仍然会被提交

    我的表单上有一些带有基本规则的字段 验证器插件在填写表单本身时表现良好 但是 提交时会出现问题 因为即使尚未输入有效的电子邮件地址或在其他文本框中输入任何内容之前 它仍然会提交 这是我的测试功能 function submit form c
  • 将 Python win32evtlog 对象转换为 xml

    我有一个使用 win32evtlog 来获取和显示不同事件的应用程序 我想将显示限制为特定级别的事件 但 win32evtlog 不会返回此信息 似乎您可以将事件转换为 XML 然后提取此信息 但我无法弄清楚如何将事件从循环获取到 XML
  • Threetenbp:解析带有时区名称的日期时出现解析异常

    我正在尝试解析 EEE dd MMM yyyy HH mm ss zzz 格式的日期 例如使用 Threeten 的 DateTimeFormatter 的 Tue 16 May 2017 07 44 48 GMT 之类的字符串 但是 似乎
  • 检查 DirectoryInfo.FullName 是否是特殊文件夹

    我的目标是检查 DirectoryInfo FullName 是否是特殊文件夹之一 这就是我正在做的事情 检查每个特殊文件夹的directoryInfo FullName 如果它们相等 DirectoryInfo directoryInfo
  • 跨进程PostMessage、UIPI限制和UIAccess=”true”

    出于安全原因 我的应用程序的 UI 模块使用high 强制完整性级别 除了一件事之外 其中的所有内容都运行良好 为了与旧版本兼容 我需要能够让用户向 UI 模块发出命令行调用 目前该机制的工作原理如下 Windows 资源管理器中的快捷方式
  • firebase:admin.auth().updateUser()导致auth/user-token过期

    我成功使用电话号码进行了身份验证 我可以检查firebase auth currentUser我已经登录了 然后我调用我的 firebase 管理路由admin auth updateUser uid somevalues 设置用户显示名称
  • java 8流分组和求和双精度

    我对 java 8 中的流非常陌生 所以我的方法可能是错误的 我有 2 个对象如下 object1 BigDecimal amount Code1 code1 Code2 code2 Code3 code3 String desc obje
  • 对具有多个提交的表单进行建模和验证

    我正在尝试找出使用 ASP Net Core 2 建模和验证具有多个表单标签和多个提交按钮的表单的正确方法 我拥有的是一个表单 用户可以在其中输入用户名和密码并登录 或者输入他们的名字 姓氏和手机号码并注册 这是我的模型 public cl