2011-04-23 45 views
0

我堅持讓我的控制器中的FormCollection的值。問題是我的表單是一張桌子。C#ASP.NET MVC表格行作爲表單值FormCollection

<% using (Html.BeginForm("PasOverlappendeAfwezighedenAan", "Afwezigheid")) {%>   
<table> 
    <tr> 
     <th></th> 
     <th> 
      datumVan 
     </th> 
     <th> 
      datumTot 
     </th> 

     <th> 
      beginUur 
     </th> 
     <th> 
      eindUur 
     </th> 
     <th> 
      reden 
     </th> 
    </tr> 

     <% foreach (var item in Model.Afwezigheden) 
      { %> 
    <tr> 
     <td> 
      <input type="text" name="datumVan" id="datumVan" value="<%: String.Format("{0:g}", item.datumVan) %>" /> 
     </td> 
     <td> 
       <input type="text" name="datumTot" id="Text1" value="<%: String.Format("{0:g}", item.datumTot) %>" /> 
     </td> 

     <td> 
      <input type="text" name="beginUur" id="Text2" value="<%: item.beginUur %>" /> 
     </td> 
     <td> 
      <input type="text" name="eindUur" id="Text3" value="<%: item.eindUur %>" /> 
     </td> 
     <td> 
      <input type="text" name="reden" id="Text4" value="<%: item.reden %>" /> 
     </td> 
    </tr> 

<% } %> 

</table> 
<% } %> 

因此,控制器應該從表格中的每一行變成一個對象。

public ActionResult PasOverlappendeAfwezighedenAan(FormCollection fc, Student stud){ 

} 

但是我怎麼會得到一行或FormCollection的一行數據?

由於提前, 我

PS:抱歉,在代碼

回答

0

確保我們可以使用的形式colleciton像荷蘭名字:

public ActionResult Test2(FormCollection postback) 
{ 
    var i = postback["beginUur"]; 
    var j = postback["eindUur"]; 

    return View(); 
} 

然後i的值會是一個字符串,如:「20,40,60」,如果我們的帖子表單有3個字段(或稱爲[輸入文本])被命名爲「beginUur」..並且我們可以使用

string [] beginUurResult = i.Split(','); 

讓每個beginUur值

的字符串數組 -

或每場像一個單獨的列表:

public ActionResult PasOverlappendeAfwezighedenAan(List<string> datumVan, List<string> datumTot){ 

} 
+0

會不會有在使用的FormCollection沒有可能的方式? – 2011-04-23 14:18:18

+0

@Sir Troll:當然〜請看我的新帖子:) – Maidot 2011-04-23 14:44:20

+0

@Sir Troll:答案可以幫到你嗎? – Maidot 2011-04-24 01:44:58