Asp.net mvc MVC中将列表传递给HttpGet方法的另一种方法
我需要将一个列表(至少包含3项)传递给MVC HttpGet操作。。。但我不知道如何通过。。。是否有其他方法代替使用请求查询字符串?对我来说,使用请求查询字符串是不可能的,因为列表是在客户端动态创建的Asp.net mvc MVC中将列表传递给HttpGet方法的另一种方法,asp.net-mvc,list,parameter-passing,Asp.net Mvc,List,Parameter Passing,我需要将一个列表(至少包含3项)传递给MVC HttpGet操作。。。但我不知道如何通过。。。是否有其他方法代替使用请求查询字符串?对我来说,使用请求查询字符串是不可能的,因为列表是在客户端动态创建的 public ActionResult Customer(List customer) { return View(); } 请引导我通过这个。。。提前谢谢 您可以通过手动解析FormCollection对象来实现这一点,但这样做会产生繁琐的代码。但是,
public ActionResult Customer(List customer)
{
return View();
}
请引导我通过这个。。。提前谢谢 您可以通过手动解析
FormCollection
对象来实现这一点,但这样做会产生繁琐的代码。但是,如果无法控制已发布值的名称,则可能需要执行此操作
public ActionResult Customer(FormCollection response)
{
for (int i = 0; i < response["CustomerCount"]; i++
{
list.Add(
new Customer
{
ID = response["Customer" + i + ".ID"],
Name = response["Customer" + i + ".Name"],
...
});
}
}
控制员:
public CustomerController : Controller
{
public ActionResult Add(List<Customer> myList)
{
var test = myList.Count; // 2
var test2 = myList[1].Name; // Alice
}
}
注意:客户是
返回视图(myViewModel)传递的CustomerEdit视图模型
类中的列表
代码>它需要从用户发送什么类型的数据?完整的客户数据(名字、姓氏等)?或者只是现有客户Id的列表?@arserbin3我需要在列表中传递Id、姓名、出生日期、地址、城市、国家、电子邮件和其他基本详细信息。非常感谢@arserbin3。。我用了你的主意,效果很好。。我无法用言语表达我的感激之情。。再次感谢你,我的朋友…:-)我对你提到的方法还有一个疑问。Querystring具有长度约束。。。。那么还有其他方法吗?另一种(更好的)方法是以POST
请求的形式提交数据,而不是GET
<代码>POST
数据没有长度限制。然后应该考虑将< > > [HtpStp] < /Cord>属性添加到<代码> Ad()中:
public CustomerController : Controller
{
public ActionResult Add(List<Customer> myList)
{
var test = myList.Count; // 2
var test2 = myList[1].Name; // Alice
}
}
@model MyNamespace.ViewModels.CustomerEditViewModel
@Html.BeginForm("Edit", "Customer")
{
@* Show all current customers for editing *@
@for (int i=0; i < Model.Customers.Count; i++)
{
@Html.TextBoxFor(x => x.Customers[i].ID)
@Html.TextBoxFor(x => x.Customers[i].Name)
}
<input type="submit" />
}