发布到编辑控制器操作不传递模型 ID

2024-01-29

我的控制器上有一个如下所示的操作:

[HttpPost]
public ActionResult Edit(EditMyObjectViewModel editMyObjectViewModel)
{
}

EditMyActionViewModel包含一个MyObject

这被传递到编辑视图(上述控制器操作的 GET 版本)

当它重新发布时,ID 尚未设置......
如果我将控制器更改为:

[HttpPost]
public ActionResult Edit(Guid id, EditMyObjectViewModel editMyObjectViewModel)
{
    editMyObjectViewModel.ID = id;
}

确实可行,但是好像有点不对劲?

我想我还可以将视图上的隐藏字段绑定到 Model.ID?

这里有什么约定?

EDIT

模型/视图模型如下:

public class EditMyObjectViewModel
{
    public IEnumerable<SomeItem> SomeUnrelatedStuff { get; set; }
    public MyObject MyObject { get; set; }
}

public class MyObject
{
    public guid ID { get; set; }
    public string Name { get; set; }
}

视图如下:

@model MyApp.Models.EditMyObjectViewModel
@using (Html.BeginForm("Edit", "License", FormMethod.Post, new { @class = "form form-horizontal" }))
{
        @Html.TextboxFor(x=>x.MyObject.Name);
        <input type="submit" class="btn btn-success" value="Create Modification" />
}

你是对的,你要么需要创建一个隐藏字段来保存 id,要么需要将 ID 作为参数添加到操作方法中。

问题只是 id 从哪里来以及如何填充。默认模型绑定器从表单字段填充模型;它不会使用查询参数。查询参数不会进入模型,但会填充到操作方法的参数中。

您可以做的另一件事是创建自定义模型绑定器以将查询参数填充到模型中。但在这种情况下,这感觉有点矫枉过正。另外,您必须为每个页面/模型执行此操作。

如果是我,我会将 id 添加到操作方法中。

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

发布到编辑控制器操作不传递模型 ID 的相关文章

随机推荐

  • 如何为Lua表添加前缀?

    我有一个lua文件 其内容为lua表如下 A A B A B C 0 问题是我想在上述每个语句之前添加前缀 XYZ 因此 解析之后数据库应该有这样的内容 XYZ A XYZ A B XYZ A B C 有任何想法吗 提前致谢 您可以使用以下
  • 熊猫表查找

    我有一个熊猫查找表 看起来像这样 Grade Lower Boundary Upper Boundary 1 110 96 2 96 91 3 91 85 4 85 81 5 81 77 6 77 72 7 72 68 8 68 63 9
  • SVG 和 Javascript - 创建 SVGPoint - TypeError:非法构造函数

    我正在尝试使用 Javascript 创建 SVG 多边形 当我尝试使用以下 Javascript 代码创建 SVGPoint 时 var p new SVGPoint 我收到以下消息 类型错误 非法构造函数 您需要从您的 SVG 文档中调
  • Espresso:如何滚动到 ScrollView 的底部

    在 Espresso 测试中如何向下滚动到 ScrollView 的底部 谢谢 如果在 ScrollView 的底部您需要找到一个视图并与之匹配某些内容 那么只需执行scrollTo 在需要显示它的任何其他操作之前对其执行操作 onView
  • C# 中的 Windows 时区下拉菜单 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否有一种简单的方法可以在 C 应用程序中显示 Windows 时区下拉列表 以便用户可以更改它 类似于这个时区下拉菜单 https
  • 不要从 UITableView 中删除某些行

    我正在尝试实现从 a 中删除一些行的功能table view而不是其他人 在这种情况下 一切都在section 0不应该被删除 所以也不能滑动删除 但是里面的所有内容section 1应该可以 我怎样才能实现这个 现在section 0ro
  • Ui 表单:添加运行时还是编译时?

    如果我有大量 UI 表单 我想知道哪种方法有效 我对这两种情况下的内存利用率没有任何想法 我只是在一个简单的示例中尝试了两种方法 http qt project org doc qt 4 8 designer using a ui file
  • 检查 C 枚举中是否定义了某个值?

    假设我有这个 enum A 0x2E B 0x23 C 0x40 可以检查是否x被定义为enum 我正在手动执行此操作 int isdef x A x B x C 但我想要更有活力的东西 GCC extensions也欢迎 据我所知并非如此
  • 你可以在CSS文档中使用handlebars.js变量吗?

    我有兴趣做一些条件格式并认为最好的方法是做类似的事情 InsideCSSdocument if something some css else some other css if 但我搜索了一下 只发现Django相关的东西 这在车把或任何
  • 下载S3并添加到应用程序目录

    我有一个正在尝试设置的弹性 beanstalk Node 应用程序 我正在尝试将环境文件从 S3 加载到 var app ondeck src 因此该文件在 Node 应用程序启动时可用 我已经尝试了尽可能多的方法 但 production
  • 什么是双变量参数? ~ 打字稿

    TypeScript 的文档附带编译器选项 https www typescriptlang org docs handbook compiler options html 其中 strictFunctionTypes是用它的描述来定义的
  • Python tkFileDialog.asksaveasfile - 获取文件路径

    我想获取文件 exportFile 的路径 exportFile tkFileDialog asksaveasfile mode a 如果我写 打印导出文件 我会得到
  • 想要延迟 1 秒显示数字

    我想在 TextView 中显示数字 如下所示 Wait 5 sec then a delay of 1 sec Wait 4 sec display this in the same text view along with delay
  • 哪里可以获取以前版本的 iOS 磁盘映像? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我刚刚成为 iOS 开发者计划的成员 我正在阅读 iOS 开发者计划用户指南文档 它说 从 iOS 开
  • GPL 对 javascript 库的限制 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 如果我在我的网站上使用 GPL 许可的 JavaScript 组件 是否会被视为向公众发布 因为组件的客户端代码通过 http 加载到用户的浏览器 并
  • Python:如何使用Python生成随机稀疏对称矩阵?

    如何使用python生成随机稀疏对称矩阵 在 MATLAB 中 我们有一个函数 sprandsym 大小 密度 http www mathworks fr help matlab ref sprandsym html 但如何在 Python
  • jQuery 上传插件可与 JSP/Java 配合使用

    我正在努力完成以下任务 通过将表单 enctype multipart form data 提交给 JSP 操作来将文件上传到应用程序 JSP 操作会处理其余部分 包括将文件写入磁盘 处理和返回有关上传的一些 xml 数据 直到最近 我还在
  • “import pandas.io.data as web ”给我一个错误,说没有 pandas.io.data 的模块名称

    我刚刚学习 python 并尝试用它进行股票分析 使用库存统计 我安装了stockstats pip 安装 stockstats 进口大熊猫 进口熊猫 尝试导入数据 导入 pandas io data 收到错误消息说模块 pandas io
  • 应用内购买响应。产品为空

    我知道以前有人问过 iPhone 应用程序内购买 响应 产品仍然是空的 https stackoverflow com questions 2138972 iphone in app purchase response products a
  • 发布到编辑控制器操作不传递模型 ID

    我的控制器上有一个如下所示的操作 HttpPost public ActionResult Edit EditMyObjectViewModel editMyObjectViewModel EditMyActionViewModel包含一个