将一组Guid对发布到Action

时间:2012-01-25 10:44:43

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

正如您所见here,我允许用户动态创建数据表,并将表的ID存储在隐藏字段中(在示例中,它是文本区域,因此您可以看到它,最终的解决方案将是Guid而不是整数。)

我的问题很简单:我应该在服务器/ MVC操作上使用什么数据类型来获取textarea / hidden字段中保存的数据?

目前我有一个字符串,正在考虑加载.split()'和诸如此类的东西,但它感觉不对!

最终我需要某种IEnumerable<Guid, Guid>的东西?!?!所以我可以做一个foreach并得到每对Ids。

我确信答案很简单,但我想不出该做什么。

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:1)

如果您的UI有多个名称相似的表单字段,它们将被提交到您的操作方法并正确绑定到数组。我们可以在这种情况下使用string[]

<form action="">
  <input type="text" name="guids"/>
  <input type="text" name="guids"/>
  <input type="text" name="guids"/>
  <input type="text" name="guids"/>
  <input type="submit" value="Submit"/>
</form>

然后您的控制器可以像这样处理它们:

public ActionResult MyAction(string[] guids)
{
    guids.Count == 4 // if all four fields were filled in.
}

请注意,如果表单只发送了一个guids值,string[] guids仍然可以使用 - 它只包含一个项目。

最后,请注意,如果未输入任何值,则数组值将为null,而不是空数组。

答案 1 :(得分:0)

您实际上可以绑定到模型中的列表,看一下这篇文章

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