gpt4 book ai didi

asp.net-mvc-4 - 是否可以在 asp.net MVC4 中使用 foreach 循环建模绑定(bind)?

转载 作者:行者123 更新时间:2023-12-01 09:27:05 24 4
gpt4 key购买 nike

在研究这个问题时,我发现了一种绑定(bind)列表属性的可靠方法。

请参阅此处的示例:

  • https://stackoverflow.com/a/14157016/3229947
  • https://stackoverflow.com/a/6585642/1099260


  • 不幸的是,遍历列表并不能提供我需要的所有功能。

    此代码示例对 执行良好获取
          @foreach (Period period in Model.PeriodList)
    {
    <div> @Html.TextBoxFor(u => period.PeriodStartNumber) </div>
    <div> @Html.TextBoxFor(u => period.PeriodEndNumber) </div>
    }

    但是这些控件中的值不会绑定(bind)到 。发表 而且我无法更新我的模型。

    这是框架的限制,因此是不可能的吗?

    最佳答案

    @foreach (Period period in Model.PeriodList)
    {
    <div> @Html.TextBoxFor(u => period.PeriodStartNumber) </div>
    <div> @Html.TextBoxFor(u => period.PeriodEndNumber) </div>
    }

    这里发生的是,假设您的 PeriodList 有 3 个值并且循环执行了 3 次,现在来到 @Html.TextBoxFor(u => period.PeriodStartNumber)这部分会创建一个带有 的文本框姓名 PeriodStartNumber或者有时 period.PeriodStartNumber为了让 MVC 将值绑定(bind)到您的模型,html 元素标记名称必须与您的模型字段匹配(并且您还有 3 个具有相同名称的文本框 -> 如果您想单独绑定(bind)值,这并不好)。所以现在我发现你的模型中没有一个名为 PeriodStartNumber 的字段但是你有 PeriodList 即。 DOM 中没有名称为 PeriodList 的元素与您的模型属性绑定(bind),因此 MVC 不会绑定(bind)它。

    只需在 Controller 发布操作中保留一个参数,例如
    public ActionResult SomeAction(Model myModel, string[] PeriodStartNumber )
    {
    }

    您将值绑定(bind)到 PeriodStratNumber。

    注: Important thing to know while playing with MVC. Always make sure the Html element tag name and the model field name are the same. Only then binding will be done by MVC

    关于asp.net-mvc-4 - 是否可以在 asp.net MVC4 中使用 foreach 循环建模绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21541732/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com