自定义模型活页夹 - 获取 post 个具有相同名称的变量?

Custom model binder - get post variables with same name?

我正在 ASP.NET 中构建自定义模型活页夹,在我的 post 变量中有几个同名的变量。 例子: website.com?person=1&person=3&person=6

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

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

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

您可以在模型活页夹中使用此代码:

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

注:

  • Request.Params 得到 QueryStringFormCookiesServerVariables 项目的组合集合,这样你可以将您的模型活页夹用于查询字符串和表单数据。

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