发送一个 ViewModel,其中包含一个带有 Html.BeginForm 的列表(MVC 4)

2023-12-11

我的视图模型包含一个整数列表,我遇到的问题是,当我发送修改后的表单视图模型时,它始终等于 null。

我的视图模型:

public class testViewModel
 {
    public List<int> itemTest { get; set; 
 }

我的控制器中的操作:

例如,我会尝试对表单中输入的新值进行求和,但计算出的总和始终等于 0,没有任何变化。

      public ActionResult form(int nbre)
    {
        testViewModel montest = new testViewModel()
        {
            itemTest = new List<int>()
        };

        for(int i=0;i<nbre ;i++)
        {
           montest.itemTest.Add(0);
        }
        return View(montest);
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult form(testViewModel maListe)
    {
        int somme = 0;
        if (maListe.itemTest != null)
        {
            if (maListe.itemTest.Count() != 0)
            {

                foreach (var item in maListe.itemTest)
                {
                    somme += item;
                }
            }
        }

        //listtest = maListe;
        return RedirectToAction("test2", new { qte = somme });
    }

My view

  @model MvcWebRole1.ViewModels.testViewModel
  @{
     ViewBag.Title = "Formulaire";
   }

  @using (Html.BeginForm())
  {
     @Html.AntiForgeryToken()
     @Html.ValidationSummary(true)
  <table>
  @foreach (var item in Model.itemTest)
  {
    <tr >
       <td >
         @Html.Label("Quantitée")
       </td>
       <td>
        @Html.EditorFor(model => item)
        @Html.ValidationMessageFor(model => item)
       </td>
    </tr>

  }
 </table>
   <input type="submit" value="Valider" />
  }

谢谢你好心帮助我


您需要为集合中的每个项目建立索引。您的代码的问题似乎是使用foreach。你确实想使用for相反,并传递索引编辑者 call.

 for (int i = 0; i < Model.Items.Count; i++) {
    @Html.EditorFor(m => m.Items[i])
 }

这只适用于永远不会改变顺序的有序列表。如果您想重新排序项目,我建议您阅读 Phil Haack 关于向服务器发送列表的精彩文章。

http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

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

发送一个 ViewModel,其中包含一个带有 Html.BeginForm 的列表(MVC 4) 的相关文章

  • 如何在 ASP.NET MVC3 项目中开始使用 OpenID?

    我想为我的网站 在 asp net mvc3 中 提供身份验证机制 第一个选项是 openID 另一个选项是通过我的网站 我不知道如何开始使用 dotnetopenid 因为它没有好的文档或一些开始的指导 是否有任何视觉文档或任何有用的分步
  • 如何使用 RedirectToAction 方法添加查询字符串值?

    在 asp net mvc 中 我使用以下代码 RedirectToAction myActionName 我想通过查询字符串传递一些值 我该怎么做 传递的不属于路由一部分的任何值都将用作查询字符串参数 return this Redire
  • 如何使用 C# 将数据从存储在 FTP 服务器上的 ZIP 文件导入到数据库

    此代码从 FTP 服务器导入 void dat 文件 现在 void dat 位于 archive zip 文件下 那么如何从数据库中的 archive zip 中提取并导入数据 void dat 呢 WebClient request n
  • 如何使用 MVC 4 制作提交按钮

    我正在尝试编写一个代码 从用户输入中获取姓氏和名字 并将这些值存储在 MVC4 的数据表中 我在 Accountcontroller cs 下添加了以下代码 这将创建一个提交按钮 一旦用户单击提交按钮 它会将用户输入添加到数据集中 priv
  • 使用 C# 替换文本 - 字符文字中的字符过多

    我正在尝试更改我在 mvc 编辑中使用 c 的文本 我使用了以下代码 但出现错误 字符太多 这是我正在使用的代码 public async Task
  • 发送电子邮件属于应用程序的表示层还是业务层?

    我正在尝试找出在我的 Asp net MVC 应用程序中放置发送电子邮件的代码的最佳区域 现在 我的应用程序设置在 2 个 VS 项目中 将业务层与表示层分开 我正在尝试设置一种情况 当用户重置密码时 业务逻辑更改密码后 服务器将向用户发送
  • 我的 MVC 控制器真的应该了解 JSON 吗?

    JsonResult 类是通过 AJAX 将 Json 作为操作返回给客户端的非常有用的方法 public JsonResult JoinMailingList string txtEmail return new JsonResult D
  • MVC3:一个控制器是否需要 Windows 身份验证,而第二个控制器允许匿名?

    我有一个控制器 用于在需要 Windows 身份验证的内部 Web 应用程序中呈现页面 是否存在第二个控制器 用于对系统进行基于 JSON 的查询 不需要进行 Windows 身份验证 那可能吗 看来我目前只能做其中之一 有什么建议么 我们
  • .NET Core 2.2共享Cookie导致登录时出现Bad Request错误

    我有 2 个应用程序在它们之间共享 cookie 这是startup cs中的配置 services ConfigureApplicationCookie options gt Cookie settings options Cookie
  • 在同一站点上使用基本身份验证和表单身份验证

    谁能告诉我 是否可以在我的网站上同时使用基本身份验证和表单身份验证 而两者不会相互干扰 我有一个新网站 出于批准目的 我只希望某些人看到该网站 该网站有一个使用表单身份验证的会员区域 现在当任何人在通过基本身份验证后进入该网站时 他们都会被
  • 是否可以手动更新 ModelState.IsValid ?

    我想尽可能使用内置的验证功能 我还想对 CRUD 方法使用相同的模型 但是 由于无法使用标准模式完成下拉列表 因此我必须手动验证它 在回发方法中 我只想验证下拉列表并将此结果添加到 ModelState 中 这样我就不必验证使用数据注释完成
  • ASP.NET MVC 使用类型化模型将模型与单选按钮列表进行两种方式数据绑定

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

    当我将模型发布到控制器以保存它时 控制器会得到一个空字典 哪里出了问题 绑定工作有什么特别要做的吗 我的模型有这个属性 public Dictionary
  • UrlHelper扩展方法调用编码未执行

    我为 ASP NET MVC UrlHelper 创建了一个简单的扩展方法 它不接受任何参数 因为它的工作是从配置中查找样式表文件的名称并返回样式表的 url 扩展方法大致如下 public static string SiteStyles
  • ASP.NET MVC:文件响应流?

    当我从 MVC 操作方法返回 FilePathResult 时 会发生以下哪种情况 假设结果指向的文件非常大 文件被完整地加载到服务器的内存中 然后发送到客户端 该文件以某种方式传输到客户端 其方式在任何时候都不会完全加载到服务器的内存中
  • HTTP post 上的 MVC 模型子对象为 null

    希望可以有人帮帮我 我是 MVC 新手 来自 winforms console vb6background 抱歉 如果这个问题已经得到解答 我正在努力了解如何解决以下问题 我有一个视图模型 public class testvm publi
  • ASP.NET MVC 4 FileResult - 错误

    我在控制器上有一个返回 PDF 的简单操作 工作正常 public FileResult GetReport string id byte fileBytes manager GetReport id string fileName id
  • asp.net mvc 中编辑器模板中复杂类型的 ModelMetadata

    我有一个视图模型 其中包含 TestThing 类型的复杂属性 该属性声明为 public class TestThing Display Name String3 Prompt String4 public string Test1 ge
  • Html.BeginForm() 扩展类型

    有谁知道创建自定义 HtmlHelperextension 方法的语法 其行为类似于 p Loads of html stuff here p 我正在思考一些类似的事情 有任何想法吗 Cheers ETF 传真 您需要创建一个实现的类IDi
  • Google Analytics API 显示页面浏览量

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

随机推荐