6

我的表单中有一个项目列表,这些项目的名称如下......

<input type="text" id="ListItem1" name="ListItem1">
<input type="text" id="ListItem2" name="ListItem2">
<input type="text" id="ListItem3" name="ListItem3">

我想创建一个自定义模型绑定器,将它们转换为具有这种结构的模型......

public class MyModel
{
  public IEnumerable<MyModelItem> Items {get; set;}
}

public class MyModelItem
{
  public int Id { get; set; }
  public string Value { get; set; }
}

因此,每个 ListItem 都应转换为 MyModelItem,其 id 等于输入 id 末尾的数字,值设置为输入字段上的值。

在 ASP.Net MVC 1.0 中,我可以遍历bindingContext.ValueProvider.Keys集合并检查key.StartsWith("ListItem")以找到这种格式的所有输入项。

ASP.Net MVC 2 中的新 IValueProvider 接口没有键集合,我无法遍历该接口。 如何在 ASP.Net MVC 2 的设计时访问这些我只知道前缀的值?

4

2 回答 2

5

如果要遍历表单值,请使用 Request.Form。

于 2010-03-29T17:43:48.633 回答
-1

你可以使用 bindingContext.ModelState.Keys 集合吗?

更新 对不起,应该更清楚一点。我的意思是你能不使用 ModelState.Keys 集合,检查 key.StartsWith("ListItem") ,如果是的话,使用该键从值提供者获取值(使用 GetValue 方法)。

于 2010-03-29T15:23:01.690 回答