当前位置: 首页 > 知识库问答 >
问题:

MVC5未使用的模型字段在GET和POST之间丢失

水焱
2023-03-14

示例

       //ChangeAccountInfo
       [Authorize]
       public ActionResult ChangeSecurityQA() {

          ChangeSecurityQAModel qa = new ChangeSecurityQAModel(@User.Identity.Name);
            //this constructor sets UserName and loads several other fields necessary for the process.
          return View(qa);
       }


       //
       //ChangeSecurityQA Post
       [HttpPost]
       [Authorize]
       public ActionResult ChangeSecurityQA(ChangeSecurityQAModel iModel) { 
           \\iModel.UserName is now null... 
       }

所讨论的视图不使用UserName,但我将在POST处理程序中调用的方法将使用UserName。

对于用户名来说,重新获得它没什么大不了的,但对于流程更复杂的信息,我如何确保控制器获得的输入到模型中的信息将返回到post中?

共有1个答案

梁晋鹏
2023-03-14

这些数据必须存在于表单的某个地方。如果没有字段,请添加一个隐藏的字段:

@Html.HiddenFor(x=> x.SomeField)

控制器不能将信息从一个动作直接传递到另一个动作。需要在目标操作中的反序列化模型上存在的任何信息都需要从HTTP请求中反序列化,这意味着它必须在表单POST中。

当然,要注意用户可以看到并编辑这个值。任何敏感的东西都不应该发送给用户,任何来自用户的东西都应该被验证。

 类似资料:
  • 我试图创建我的第一个Spring后端,简单的应用程序,存储音乐专辑。不幸的是,我创建的endpoint没有一个工作(我使用postman测试了它们,请求返回404,没有找到)。以下是我所有与项目相关的文件/代码: 我所尝试的: 结果: 正在添加应创建数据库的dataSource方法。 @bean@ConfigurationProperties(前缀=“spring.DataSource”)publ

  • 我有一个多对多关系的轴心模型,叫做UserWebpage。 我也有个模特叫收藏 我试图在用户网页和收藏之间建立多对多的关系。基于我发现的这个SO问题,我知道这样的事情应该是可能的: Laravel:如何使用多个数据透视表关系 我的问题是: 当我尝试在UserWebpage实例和集合实例之间插入关系时,会出现以下错误。 插入关系的代码: 我得到的错误是: Illumb\Database\QueryE

  • 我想知道为什么我的铁轨没有拯救我的encrypted_password场。 这是我的UserController 这是我的用户模型 此外,我使用此函数保存它 有一件事我怀疑是我创造了我的第一次迁徙 然而,我将:password字段更改为:encrypted_password,它反映在表中。我已经坚持了两个小时了。我想知道是否有什么突出的地方。谢谢 日志显示,注入的数据减去加密密码 插入“用户”(“

  • 我对StackOverflow的第一个请求!我真的希望你能帮助我! 我想创建一个流程,将数据报告从系统自动化到工作表;我想我可以使用他们的API、应用程序脚本,并将数据导出到google sheets上。 为此,我需要在API上运行两个调用: 一个POST调用,它在系统中运行报告(它需要一个日期范围作为主体)。作为回报,我将获得一个与生成的数据相关联的ID,它将在一段时间后过期。 GET调用,它是

  • 问题内容: 我是 AngularJs的 新手。谁能说出ng-model和data-ng-model之间的区别? 与ng-model 使用data-ng-model 问题答案: 最佳实践:建议使用破折号分隔格式(例如ng-bind用于ngBind)。 如果要使用HTML验证工具,则可以改用数据前缀版本(例如ngBind的data-ng-bind)。 出于遗留原因,可以接受上面显示的其他表格,但是我们

  • 本文向大家介绍瀑布模型和RAD模型之间的区别,包括了瀑布模型和RAD模型之间的区别的使用技巧和注意事项,需要的朋友参考一下 瀑布模型 瀑布模型是经典的软件开发模型,其中软件开发的每个阶段都以线性方式完成。一旦一个阶段结束,则下一阶段开始,最后标记为软件开发完成。瀑布模型适用于较小的项目,并且只有一个开发周期。以下是这些阶段: RAD模型 RAD模型或快速开发模型也称为软件开发的增量模型。它允许在任