自定义模型绑定器-获取具有相同名称的post变量

本文关键字:变量 post 绑定 模型 获取 自定义 | 更新日期: 2023-09-27 18:27:41

我正在ASP.NET中构建一个自定义模型绑定器,在我的post变量中,我有两个同名的绑定器。示例:网站?person=1&人=3&人=6

目前我正在使用request。Form.Get("name")语法来获取变量,但它返回字符串,而不是我需要的字符串列表。如何获取列表中的所有变量?

自定义模型绑定器-获取具有相同名称的post变量

您可以在模型绑定器中使用以下代码:

var request = controllerContext.RequestContext.HttpContext.Request;
string[] values = request.Params.GetValues("Name");

注意:

  • Request.Params获得QueryStringFormCookiesServerVariables项的组合集合,通过这种方式,您可以将模型绑定器用于查询字符串和表单数据。

  • GetValues从集合中获取与指定键关联的值。

request.Form.Get("person")将为您提供一个字符串。但是,如果您有多个具有相同名称的表单元素,person,它将为具有person-name的项提供一个逗号分隔的值字符串。因此,您需要使用Split()方法从中创建一个数组。

var s = request.Form.Get("person");  // s will have the value like "shyju,scott,sam"
var personArray= s.Split(',');