C # ASP.NET Строки таблицы MVC как значения формы FormCollection

#c# #asp.net-mvc #formcollection

#c# #asp.net-mvc #formcollection

Вопрос:

Я застрял с получением значений из 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: извините за голландские имена в кодах

Ответ №1:

конечно, мы можем использовать коллекцию форм, например:

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

    return View();
}
  

тогда значением i будет строка типа: «20,40,60», если наша форма post имеет 3 поля (или называется [входной текст]), называется «beginUur».. и мы можем использовать

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

чтобы получить массив строк для каждого начального значения

или каждое поле должно быть отдельным списком, например:

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

}
  

Комментарии:

1. Не было бы никакого возможного способа использовать FormCollection?

2. @Sir Troll: Конечно ~ пожалуйста, посмотрите мой новый пост 🙂

3. @Sir Troll: Может ли ответ помочь вам?