【问题标题】:How to get value dynamically added textbox values in MVC 3如何在 MVC 3 中获取动态添加的文本框值
【发布时间】:2012-07-03 10:14:35
【问题描述】:

我想在 MVC 3 的提交按钮上获取动态添加的文本框的值。

我将值存储在隐藏字段中并使用 FromCollection。有没有更好的办法?

【问题讨论】:

    标签: asp.net-mvc-3 model-view-controller


    【解决方案1】:

    如果你将你的价值观命名为 MyValues[x] 其中 x 是一个从零开始的连续递增整数,您可以将字符串值作为名为 MyValues 的字符串列表接收。

    如果需要,此技巧也适用于主模型对象的属性。

    你应该查看一些关于如何在 ASP mvc 中绑定到集合的文章,它们可以给你一些想法。

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

    【讨论】:

      【解决方案2】:

      你可以做这样的事情(在编辑器之外写得很快,所以可能有错别字/问题): 制作视图模型:

      public class DynamicTextBoxViewModel
      {
          public IList<string> DynamicTextBox { get; set; }
      
          public int OtherStuffInViewModel { get; set; }
      }
      

      然后在你的Get 行动中:

      var model = new YourViewModel
                      {
                          DynamicTextBoxList =
                              new List<DynamicTextBox>
                                  {
                                      new DynamicTextBox
                                          {
                                              TextBoxText = string.Empty,
                                          }
                                  },
                          OtherStuffInViewModel = xxx,
                      };
      return View(model)
      

      然后在你的Post 行动中:

      您可以将所有内容绑定到您想要的位置。

      这个想法是将所有数据移动到 ViewModel 中并传递它,这样您就可以获得 ViewModel 的好处,而不是传递 FormCollection - 这更草率且更容易出错。

      【讨论】:

        猜你喜欢
        • 2019-03-27
        • 1970-01-01
        • 2019-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-12
        相关资源
        最近更新 更多