自定义模型活页夹 - 获取 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
得到 QueryString
、Form
、Cookies
和 ServerVariables
项目的组合集合,这样你可以将您的模型活页夹用于查询字符串和表单数据。
GetValues
从集合中获取与指定键关联的值。
我正在 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
得到QueryString
、Form
、Cookies
和ServerVariables
项目的组合集合,这样你可以将您的模型活页夹用于查询字符串和表单数据。GetValues
从集合中获取与指定键关联的值。