什么';s ASP FormCollection字段';基于html输入

本文关键字:基于 html 输入 字段 ASP 什么 FormCollection | 更新日期: 2023-09-27 17:59:33

我混淆了输入的Id、Name、Value和其他自定义属性,即如何从它们创建FormCollection。我的问题是:

  1. FormCollection键是根据输入的Id还是Name创建的
  2. inputformCollection[key]的值相同吗
  3. 我们可以从FormCollection获取其他输入自定义属性吗

什么';s ASP FormCollection字段';基于html输入

FormCollection键是根据输入的Id还是Name创建的?

它们是从name创建的。

input的值是否与formCollection[key]相同?

FormCollection具有来自forminput的列表,keyinputname。您可以通过输入name来访问value

我们可以从FormCollection中获取其他输入自定义属性吗?

使用FormCollection,您只能访问namevalue


您应该创建自己的模型,而不是FormCollection。通过这种方式,您可以更容易地验证数据,并且不必知道输入的name即可获取值。

class MyModel 
{
    [Required]
    public string Prop1 {get; set;}
    //other validation/UI helpers attributes
    public string Prop1 {get; set;}
}
[HttpPost]
public ActionResult Action(MyModel model) 
{ 
    /* body */ 
}

如果你想使用一个模型,并且内容是动态创建的,你可以为模型绑定器的输入命名,如下所示

<input type="text" name="Prop1" ... />
<input type="text" name="Prop2" ... />

这将自动绑定到模型。尽管在这种情况下,验证将仅在服务器端进行。