MVC 3 Razor Form Post 带多个强类型部分视图不具有约束力

2024-06-24

我很好奇在表单中使用多个强类型部分并回发到包含视图的部分的方法是否是正确的 MVC 处理方法。主视图与以下模型绑定,为简洁起见,省略了其他几个属性和数据注释:

public class AccountSetup : ViewModelBase
{
    public bool TermsAccepted { get; set; }
    public UserLogin UserLogin { get; set; }
    public SecurityQuestions SecurityQuestions { get; set; }
}

public class UserLogin
{
    public string LoginId { get; set; }
    public string Password { get; set; }
}

主 Register.cshtml 视图的标记并不完全在下面,但下面是部分的使用方式:

@model Models.Account.AccountSetup

. . . <pretty markup> . . . 

@using (Html.BeginForm("Register", "Account", FormMethod.Post))
{ 
     . . . <other fields and pretty markup> . . . 

     @Html.Partial("_LoginAccount", Model.UserLogin)
     @Html.Partial("_SecurityQuestions", Model.SecurityQuestions)

     <input id="btnContinue" type="image" />
}

仅供参考,下面是 _LoginAccount 的部分视图,其中删除了多余的标记。

@model Models.Account.UserLogin

<div>
     @Html.TextBoxFor(mod => mod.LoginId)

     @Html.PasswordFor(mod => mod.Password)
</div>

问题出在注册后的表单上,部分中包含的 AccountSetup 属性为 null。但是,如果我将各个模型添加到方法签名中,它们就会被填充。我意识到这是因为当字段呈现时 ID 会发生变化,因此它们看起来像 Register View 的 _LoginId,因此它不会映射回 AccountSetup 模型。

无法获取 accountSetup.User Login 或 account Setup.Security Questions 的值

    [HttpPost]
    public ActionResult Register(AccountSetup accountSetup)
    {

获取用户登录和安全问题的值

    [HttpPost]
    public ActionResult Register(AccountSetup accountSetup, UserLogin userLogin, SecurityQuestions securityQuestions)
    {

问题是如何将这些映射回包含视图 (AccountSetup) 模型的属性,而不必将部分模型添加到方法签名只是为了取回值?在主视图中使用强类型部分视图是一种不好的方法吗?


这是因为您的部分视图是强类型的。删除 Partials 中的 @model 声明并像这样访问模型属性

@Html.Partial("_LoginAccount")

然后在你的部分

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

MVC 3 Razor Form Post 带多个强类型部分视图不具有约束力 的相关文章

  • 为 Razor 组件添加 XML 文档

    有没有办法为 Razor 组件添加 XML 文档 我注意到 Microsoft 的一些组件有 IntelliSense 中显示的文档 然而 将通常的 XML 文档添加到代码隐藏部分类似乎不起作用
  • 在多个网页(.cshtml 文件)中使用 Razor @functions

    我有以下功能 我希望可用于我的 asp net 网页 2 应用程序中的多个 cshtml 视图 如何使该功能可用于应用程序中的任何视图 而不是仅一个视图 functions public bool DisplayButton String
  • 如何在 MVC3 Razor 视图中呈现数据表

    我在 xls 电子表格 1 之间有一个可靠且经过测试的导入方法 该方法返回DataTable 我已将其定位在我的服务层中 而不是数据中 因为只有工作簿作为上传文件保存 但现在我想知道在哪里以及如何生成此内容的 HTML 表示形式DataTa
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • JqG​​rid 搜索选项:工具栏搜索与标准搜索窗口

    我想允许用户仅使用一个 sopt 设置来过滤每一列 但对于更高级的搜索 对于高级用户 我想允许他们使用内置搜索按钮 但我想覆盖 odata 中列出的各个列搜索选项 例如 我希望我的用户只有 eq 但我希望高级用户能够从 odata 中进行选
  • MVC3 - HiddenFor 字典值

    我有一个名为 Week 的字典属性 public IDictionary
  • 动态添加字段到 Razor 表单

    我有一个 Razor 表单 其中包含我想要动态添加项目的项目列表 表格 您可以从下拉列表中选择项目 单击 添加 下拉列表中的项目将添加到列表中 然后我希望所有这些都通过POST当我提交我的表格和我的控制器时HttpPost方法可以处理输入
  • ASP.NET MVC (Razor) 与 Angular 5

    我们目前正在考虑从 ASP NET MVC 迁移到 Angular 5 主要是因为它看起来是最好 最新的框架 然而 我们似乎都无法找出为什么 Angular 比 MVC Razor 更好的硬道理 SPA 与 MPA 似乎是不同的方法 但实际
  • MVC3 RenderPartial 跨多个页面缓存

    谁能告诉我是否可以跨多个页面缓存 RenderPartial 我有一个用于用户配置文件的 RenderPartial 除非用户更新其配置文件 否则它实际上不会改变 所以我真的不想每次加载页面时都回去获取他 她的个人资料 我宁愿传递部分内容
  • 是否可以手动更新 ModelState.IsValid ?

    我想尽可能使用内置的验证功能 我还想对 CRUD 方法使用相同的模型 但是 由于无法使用标准模式完成下拉列表 因此我必须手动验证它 在回发方法中 我只想验证下拉列表并将此结果添加到 ModelState 中 这样我就不必验证使用数据注释完成
  • 将 JSON 数据从 Chrome 浏览器扩展发布到 MVC 控制器

    我编写了一个 Chrome 浏览器扩展 它使用 Ajax 将数据发送到 MVC3 控制器 为了确保控制器代码正常工作 我首先编写了一个 Razor 网页来原型化 ajax 代码 该代码在网页中工作 绑定了所有的 JSON 模型 我将其发布到
  • MVC 4 Razor 如果拆分 div 标签

    我有以下 MVC 4 Razor 代码 for int i 1 i lt 100 i if currentCol 1 Html Raw div class row Need to do this because can t have a o
  • AppHarbor 一步构建以及如何部署我的数据库[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我终于达到了我的解决方案完成构建步骤
  • 在 MVC3 中创建下拉列表

    我正在尝试创建一个下拉列表来显示自定义集合类中的所有值 例如 public class MyCustomClassCollection public List
  • CheckboxFor 不与嵌套对象绑定

    当模型中嵌套的对象中定义属性时 CheckBoxFor 不受限制 这是一个例子 我有一个SearchOptions模型包含一个List
  • 将自定义 ValueProviderFactories 添加到 ASP.NET MVC3?

    我试图尝试将 Protobuf ValueProviderFactory 添加到 MVC3 以便我可以选择 MIME 类型并将原始数据反序列化为操作参数的对象 我还可以使用它来更改默认的 Json 序列化器 看着JsonValueProvi
  • RazorEngine 中的模板是如何缓存的?

    你打电话时RazorEngine Razor Compile 编译好的模板存放在哪里 程序重启后可以使用吗 如果内存不足 会被dump吗 我在用RazorEngine in an ASP NET http en wikipedia org
  • 如何让 Url.Action 使用正确的端口号?

    我正在使用 MVC3 创建一个网站 我使用 razor 语法来创建视图 并且所有这些都在 azure 下运行 目前我在本地的azure模拟器下运行 我在以下网址查看 http localhost 81 Blah Foo http local
  • 使用 MVC3 C# 进行分页的最简单方法?

    在 MVC3 C 中有一个网站项目 我从数据库中检索信息并在我的视图中以表格形式呈现 我想使用分页来每页最多显示五行 一直在互联网上寻找教程 但它们似乎都非常先进 可以实现这一目标 使用 MVC3 进行分页的最简单方法是什么 看图片左下角就
  • 外部剃刀视图看不到外部模型

    我对外部剃刀视图有疑问 在我的项目中 我有主 mvc Web 程序集和动态加载的外部类库程序集 来自 DB 及其自己的控制器 视图和模型 这些程序集在运行时不会直接引用和加载 我能够通过为控制器创建自定义控制器工厂 为视图创建自定义虚拟路径

随机推荐

  • 在seaborn kdeplot中设置置信度

    我对seaborn完全陌生 所以如果这是一个简单的问题 我深表歉意 但我在文档中找不到关于如何在kdeplot中控制n levels绘制的级别的描述 这是一个例子 import seaborn as sns import numpy as
  • 如何设置从自定义文件类型到程序的文件关联

    假设我创建了一个自定义文件 它实际上对应于我的程序可以读取的内容 称为 Bacon dek 我可以正常地从我的程序访问它 修改它等 只有少数问题仍然存在 也以相对正确的速度修复它们 现在 我想做的 并在完成后尝试快速修复 实际上是从 Win
  • 获取API错误处理

    我想显示来自 API 的错误消息 问题是如果我检查 我无法到达该错误response ok 它返回 Fetch 错误 而不是来自 API 的错误 如果我不使用if response ok 它从 API 返回错误 但调度成功操作 这是登录操作
  • 您可以在 clojure defrecord 中指定方法的返回类型吗?

    我已经创建了一个应用程序信息接口和一个类 但是当我查看生成的类时 所有方法的返回类型都是 Object 我可以将返回类型更改为 String 吗 文档说类型提示可以使用 defrecord 但没有给出示例 我能找到的唯一示例是类型提示字段和
  • WinSCP:校验和计算(不支持该操作。)

    我在 C WinForms 应用程序中使用 WinSCP NET 程序集 并且希望将远程目录与本地目录同步 这与 WinSCP 配合得很好 但在同步开始之前 我想检查远程和区域设置控制器是否完全不同 为此 我想使用CalculateFile
  • 当 Axios 中的 responseType 为 blob 和 VueJs 时,如何读取 http 错误? [复制]

    这个问题在这里已经有答案了 我在 VueJS 应用程序中使用 Blob responseType 和 Axios 从服务器下载文档 当响应代码为 200 时 它工作正常并下载文件 但是当出现任何 http 错误时 我在捕获错误时无法读取状态
  • Angular 10 在从不同工作区渲染组件时使用库时无法读取 null 属性“bindingStartIndex”

    我创建了一个位于我的应用程序工作区之外的 Angular Library 结果是我有两个不同的工作空间 我的第一个方法是建立我的图书馆和链接 dist与我的应用程序的文件夹 这对于 ngserve 来说效果不太好 但无论如何我在渲染我的库组
  • 如何声明字符串数组(多行)

    为什么 dlls Count返回单个元素 我尝试这样声明我的字符串数组 basePath Split Path MyInvocation MyCommand Path dlls basePath bin debug dll1 dll bas
  • Ionic2 + Angular2 - 带有离子图标星的动态速率值

    我正在尝试构建一个从 0 到 5 颗星的简单动态速率 及其中间值 如 x 5 示例 4 5 该速率从 javascript 接收值 我用 ngFor 寻找一些东西 但我不明白它是如何工作的 有人可以解释 帮助我吗 如果有帮助的话 对于 io
  • iPhone/iPod 模拟器和设备之间的差异

    自从我开始 iPhone iPod 开发以来 我发现模拟器和真实设备的反应之间存在一些差异 也许我会遇到一些其他差异 我也必须弄清楚 也许其他人还没有在这里遇到这些问题 并且可以从知识中受益 也许你知道一些你本来会遇到的问题 差异很高兴在您
  • flutter 的 Image_picker 插件在 iOS 上运行时会导致构建错误

    在 iOS 模拟器上运行 flutter 应用程序时出现此错误 Users sirapol Desktop FirstCareFrontEnd care now frontend v1 build ios Debug iphonesimul
  • .trigger 函数的回调

    我有以下代码 scheduleLink trigger click alert text 这是点击处理程序 scheduleLink bind click function loadScheduleEvent wrap tabs find
  • 嵌套函数中的局部变量

    好吧 请耐心听我说 我知道这看起来会非常复杂 但请帮助我理解发生了什么 from functools import partial class Cage object def init self animal self animal ani
  • 使用 BFS 查找 Boost BGL 图中所有可到达的顶点

    我构建了一个 boost BGL 图 using vertex t std variant
  • 禁用 dat.gui 中按钮的方法?

    我正在尝试找出一种方法来轻松禁用 启用 dat gui 中的按钮 我设置了 dat gui 来控制动画 当动画结束时 我希望禁用 播放 按钮 我尝试向按钮的 DOM 元素添加 禁用 属性 但在设置此属性后单击按钮时 我仍然看到相应的函数会触
  • 在桌面应用程序和网站之间启用单点登录

    我们有一个客户端 服务器应用程序 具有丰富的客户端前端 Net 和管理门户 Asp Net 目前 用户必须在富客户端和网站上登录 我们希望他们能够登录富客户端 但如果他们从客户端内启动网站 则不必登录该网站 我们怎样才能做到这一点 采用另一
  • ES6/Typescript 导入:在一行中导入 * 和名称

    我怎样才能把它写在 1 行上 import as Express from express import Application NextFunction Request Response from express 你的开发者丹 impor
  • 单元测试 SqlFunction

    我有一个公开 IQueryable 的存储库和一个处理特定查询的服务 这里有一些使用 DbFunctions 的方法 为了可测试 我创建了一个带有静态元素列表的假存储库并将其注入到服务中 问题是 由于我的服务查询列表并且不使用数据库 因此我
  • Android studio:调用需要 API 级别 16 错误

    我在 Android studio 中遇到以下错误 这sqlitedatabase close 方法自 API Level 1 起可用 但 android studio ide 无法检测到 几天前 出现了更新版本 版本 AI 130 687
  • MVC 3 Razor Form Post 带多个强类型部分视图不具有约束力

    我很好奇在表单中使用多个强类型部分并回发到包含视图的部分的方法是否是正确的 MVC 处理方法 主视图与以下模型绑定 为简洁起见 省略了其他几个属性和数据注释 public class AccountSetup ViewModelBase p