2016-11-07 37 views
1

我想綁定我的數據在我的模型上,這是一個IList。這是我在我的視圖代碼:如何將IList <string>傳遞給控制器​​使用表單集合

@using (Html.BeginForm("fncModify", "Main", FormMethod.Post, 
new { enctype = "multipart/form-data" })) 

for (int x = 0; x < Model.lstEmployeeNames.Count; x++) 
     { 
      @Html.HiddenFor(y=>y.lstEmployeeNames[x]) 
     } 

在我的模型圖:

public IList<string> lstEmployeeNames { get; set; } 

但在我的控制來看,我的表單值總是返回空值:

public ActionResult fncModify(FormCollection form) 
    { 
     IList<string> lstResult = new List<string>(); 
     //this always return null 
     var lstResult = form["lstEmployeeNames"]; 
     return RedirectToAction("Index", "Main"); 
    } 

什麼你認爲我在這裏失蹤了嗎?我打算將我的Model.lstEmployeeNames中的字符串列表傳遞給我的控制器。

+0

您是否檢查過FormCollection方法對象。你在使用斷點時有什麼價值嗎? –

+0

@shashank我得到空值。我不是我在這裏想念的。但是如果數據不是集合,那麼數據是可以的。 –

+1

'y => y.lstEmployeeNames [x]'會創建帶有'name's的元素,最後有一個'[number]',這是名稱的一部分,而且在閱讀您的時候您似乎忽略了它們'FormCollection'。爲什麼你仍然在使用它,而不是直接映射到'List lstEmployeeNames'? – GSerg

回答

0

如所建議的由用戶GSerg,我能夠通過使用此代碼列表直接映射到我的ActionResult方法從我的剃刀視圖通過我的收藏到我的控制器:

public ActionResult fncModify(List<string> lstEmployeeNames) 

代替使用這樣的:

public ActionResult fncModify(FormCollection form) 
相關問題