我需要將列表(至少包含3個項目)傳遞給MVC HttpGet Action ...但我不知道如何傳遞...有沒有其他而不是使用請求查詢字符串?使用請求查詢字符串是關閉的圖表對我來說,因爲在客戶端動態創建的列表..替代方法將列表傳遞給MVC中的HttpGet方法
public ActionResult Customer(List customer)
{
return View();
}
請指導我通過這個...在此先感謝..
我需要將列表(至少包含3個項目)傳遞給MVC HttpGet Action ...但我不知道如何傳遞...有沒有其他而不是使用請求查詢字符串?使用請求查詢字符串是關閉的圖表對我來說,因爲在客戶端動態創建的列表..替代方法將列表傳遞給MVC中的HttpGet方法
public ActionResult Customer(List customer)
{
return View();
}
請指導我通過這個...在此先感謝..
你可以這樣做通過手動解析FormCollection
對象,但它會造成繁瑣的代碼。但是,如果您無法控制POST值的名稱,則這可能是必需的。
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"],
...
});
}
}
但更清潔的方法是使用MVC的自動綁定,這對名單以及作品:
從用戶的查詢字符串:
/Customer/Add?myList[0].ID=2&myList[0].Name=Bob&myList[1].ID=18&myList[1].Name=Alice
控制器:
public CustomerController : Controller
{
public ActionResult Add(List<Customer> myList)
{
var test = myList.Count; // 2
var test2 = myList[1].Name; // Alice
}
}
如果可能,在剃刀視圖中使用HtmlHelper
方法來創建這些輸入,將所有這是猜測。一個例子編輯現有客戶:
@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" />
}
注:客戶是在CustomerEditViewModel
類List<Customer>
與return View(myViewModel);
它需要從用戶發送什麼樣的數據的傳遞?完整的客戶數據(名字,姓氏等)?或只是一個現有的客戶ID列表? – arserbin3
@ arserbin3我需要通過身份證,姓名,出生日期,地址,城市,國家,電子郵件和其他基本的詳細信息列表.. – Bhuvi