如何在 Html.actionLink 的参数中传递 IEnumerable Model

2023-12-05

我有个问题。我需要保存模型的所有值。

在index.cshtml中,我有:

@model IEnumerable

在我看来,我可以在 foreach 中获取所有值。

@foreach(模型中的var项){ 项目 ID、项目名称 }

But 我需要将整个模型传递给我的控制器有一个链接:

html.actionlink("保存", 保存, ...);

请问我该怎么做?

Thanks


您无法使用这样的 GET 请求传递整个模型。您可以使用 HTML 表单:

@using (Html.BeginForm("Save", "SomeController"))
{
    @Html.EditorForModel()
    <input type="submit" value="Save It">
}

您已为此模型定义了编辑器模板(~/Views/Shared/EditorTemplates/Item.cshtml) 使用隐藏字段:

@model Item
@Html.HiddenFor(x => x.ID)
@Html.HiddenFor(x => x.Name)

该部分的名称和位置很重要。它应该位于~/Views/Shared/EditorTemplates文件名应该被称为Item.cshtml如果 Item 是模型集合的类型名称,即IEnumerable<Item>。将为集合中的每个项目执行编辑器模板,并呈现相应的隐藏字段,以便将其传输到服务器。

此表单将成功地将项目集合发送到以下控制器操作:

[HttpPost]
public ActionResult(IEnumerable<Item> model)
{
    ...
}

这是另一种继续进行的方法。如果用户不应该修改视图上的模型值,那么您可以简单地使用一些唯一标识符,允许您从最初获取模型的位置重新获取模型。例如:

public ActionResult Index(int id)
{
    IEnumerable<Item> model = ... fetch the model using the id
    return View(model);
}

并在视图中生成一个传递此 id 的链接:

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

如何在 Html.actionLink 的参数中传递 IEnumerable Model 的相关文章

  • 使用 ViewModel 屏蔽可为 null 的域属性

    我正在使用 Entity Framework 4 0 并使用 POCO 对象 当我从数据库填充 POCO 对象时 我将属性值转换为我自己的域对象 我们可以将其称为我的模型 当然 我的模型的字段是否可为空取决于它在数据库中映射到的值是否来自
  • ASP.NET MVC 使用类型化模型将模型与单选按钮列表进行两种方式数据绑定

    我有一个由单选按钮矩阵组成的 mvc 视图 每行单选按钮都在一个组中 代表模型中的一个键入对象 使用各种博客和帖子的指导 我已成功将发布的表单结果绑定到控制器操作中的类型化模型数组 但是似乎无法成功反转效果并将现有模型绑定到单选按钮 同时保
  • 如何在aspasp.net MVC中隐藏Webgrid中的列?

    我是 MVC 新手 我使用Webgrid展示一些客户价值 我需要将列及其标题隐藏起来 我该怎么做呢 CSS gridhide visibility hidden Code grid Column Id ID style gridhide 我
  • Razor 中的动态匿名类型导致 RuntimeBinderException

    我收到以下错误 object 不包含 RatingName 的定义 当您查看匿名动态类型时 它显然具有RatingName 我意识到我可以使用元组来做到这一点 但我想了解为什么会出现错误消息 在我看来 具有内部属性的匿名类型是一个糟糕的 N
  • 选择另一个下拉列表时填充下拉列表[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ASP.NET MVC 最佳实施实践

    最近 我被要求完全重写和重新设计一个网站 该公司的所有者强调 他希望该网站采用最新 最先进的技术来制作 但要避免额外的成本 截至目前 我在研究 CMS 实现和使用 MVC 编写新实现之间左右为难 该网站主要是宣传册件 但需要允许访问者通过表
  • 无法解析请求正文

    我一直在尝试解决以下错误 但无法解决 下面是代码 HttpPost public async Task
  • SignalR - 如何向除呼叫者之外的所有人发送消息

    我有一个 Aspnet core 3 1 MVC 应用程序 我在其中配置了 SignalR 集线器 我有一个控制器 我可以在其中进行依赖注入 oIHubContext private readonly IHubContext
  • 如何从子动作中获取当前控制器和动作?

    我的视图的一部分是通过调用子操作的 RenderAction 呈现的 如何从该子操作中获取父控制器和操作 当我使用 ViewContext RouteData Values action 我取回了子操作的名称 但我需要的是父 调用操作 Th
  • ASP.NET MVC HttpException 消息未显示在客户端上

    我正在使用 asp net mvc 构建 RESTful Web api 它返回纯 json 数据 在我的客户端上 我使用backbone js 与其进行通信 我的问题是 如何在 JavaScript 中捕获消息 例如 如果用户没有删除权限
  • 使用 SignalR 检测“服务器离线”

    我们尝试在低带宽环境中使用 SignalR 在该环境中 与后端服务器的连接可以随机出现和消失 并且我们希望我们的 Web 应用程序能够做出适当的响应 看起来这个连接 API 在过去的一年里一直在变化 但根据最新的文档 我尝试连接 conne
  • 无法将代码优先迁移应用到 mysql 数据库

    我正在使用 EF 代码优先模型开发 asp net mvc 我正在尝试首先使用 EF 代码将迁移应用到我的项目中 我正在使用 MySql 数据库 目前我使用的是 EF 4 3 1 版本和 6 6 4 0 版本的 mysql Connecto
  • MVC WebGrid 设置渲染的ID

    使用 MVC 3 中的 WebGrid 如何在呈现时指定控件的名称 即呈现时表的 id var someGrid new WebGrid source Model Users defaultSort Name rowsPerPage 50
  • IHttpModule 和控制台应用程序的流畅 NHibernate 模式

    我目前有一个在存储库模式中使用 Fluent NHibernate LINQ 的 C MVC 2 Web 应用程序 并使用 Ninject 来处理 MVC 控制器的构造函数要求 将其传递到存储库中 我的 Fluent NHibernate
  • Google Analytics API 显示页面浏览量

    使用 NET MVC 3 我想在网站的每个页面上显示页面视图 我已经设置了谷歌分析 我知道有一个 API 但不知道从哪里开始 有什么指示可以说明我需要什么 更具体地说 要查看什么来显示页面视图 在 Views Shared 文件夹中创建一个
  • 有什么方法可以在 ASP.NET MVC Web 应用程序中模拟声明主体吗?

    我有一些ASP NET MVC控制器代码检查用户是否经过身份验证 如果是 则检查用户是否具有特定声明 工作正常 我有一些单元测试 我需要模拟一个IPrincipal 这很容易做到 但我不知道如何检查索赔 我通常会做类似的事情 public
  • FluentValidation:验证类型名称必须是唯一的

    我的代码中指定了以下规则 RuleFor x gt x Auction Round1Ring1Start GreaterThan DateTime Now RuleFor x gt x Auction Round1Ring1End Grea
  • 在实体框架中不使用 Dispose 或 using()

    我一路上正在编写一个网络应用程序并学习实体框架 如果我做错了什么 我很好奇 我在查询时没有使用过 dispose 或 using 语句 我的存储库示例 public User GetUserById int sessionId var us
  • 配置的托管模块出现 Asp.net MVC 错误

    我有自定义身份验证HttpModule这是相当困难的 但我希望它仅针对托管请求运行 而不是静态请求 Asp net MVC 自动添加 IIS7 Web 服务器的配置部分
  • CheckboxFor 不与嵌套对象绑定

    当模型中嵌套的对象中定义属性时 CheckBoxFor 不受限制 这是一个例子 我有一个SearchOptions模型包含一个List

随机推荐