ASP.Net MVC Array of Hidden fields -


i sending list<> view, , turning list array of hidden fields. being done using partial view, build table.

<%@ control language="c#" inherits="system.web.mvc.viewusercontrol<budgiemoneysite.models.transactionsplitline>" %> <tr>     <td>         <%=model.category %>         <%=html.hiddenfor(x => x.categoryid)%>     </td>     <td>         <%=model.subcategory %>         <%=html.hiddenfor(x => x.subcategoryid)%>     </td>     <td>         <%=model.amount %>         <%=html.hiddenfor(x => x.amountvalue)%>     </td>  </tr> 

i have have x number of rows.... hoping can values hidden fields array. have field in model, defined public string[] categoryids { get; set; }

(i think issue may around hidden field being called 'categoryid' , mu model wanting 'categoryids').

when rendered, see have row looks this:

<tr> <td>     medical     <input id="transactionsplitlines_2__categoryid" name="transactionsplitlines[2].categoryid" type="hidden" value="6" />  </td> <td>     on counter medicines     <input id="transactionsplitlines_2__subcategoryid" name="transactionsplitlines[2].subcategoryid" type="hidden" value="22" /> </td> <td>     111     <input id="transactionsplitlines_2__amountvalue" name="transactionsplitlines[2].amountvalue" type="hidden" value="0" /> </td> 

i trying data in controller this:

[httppost] public actionresult accounttransaction(accounttransactionview model) {     var reply = createmodel(model);     if (model.categoryids != null)     {         (int = 0; < model.categoryids.count(); i++ )         {             reply.transactionsplitlines.add(new transactionsplitline                                                 {                                                     amount = "100",                                                      category = services.categoryservices.getcategorybyid(int.parse(model.categoryids[i])).description,                                                      subcategoryid = model.selectedcategoryid,                                                      subcategory = services.subcategoryservices.getsubcategorybyid(model.selectedsubcategoryid).description                                                 });         }     }     reply.transactionsplitlines.add(new transactionsplitline                                         {                                             amount = model.amount,                                              category = services.categoryservices.getcategorybyid(model.selectedcategoryid).description,                                              subcategory = services.subcategoryservices.getsubcategorybyid(model.selectedsubcategoryid).description,                                              categoryid = model.selectedcategoryid,                                             subcategoryid = model.selectedsubcategoryid                                         });     return view("accounttransaction", reply); } 

but categoryids null...

how can reference hidden fields, when name 'transactionsplitlines[2].subcategoryid' (which 2nd row, think). think have naming issue, , getting tangled... can assit?

edit: here's accounttransactionview class..

 public class accounttransactionview {   public accounttransactionview()   {       transactionsplitlines = new list<transactionsplitline>();   }      [displayname("bank account")]     public ienumerable<selectlistitem> accounts { get; set; }      [displayname("cost center")]     public ienumerable<selectlistitem> costcenters { get; set; }      [displayname("payee")]     public ienumerable<selectlistitem> payees { get; set; }      [displayname("transaction type")]     public list<transactiontypeview> transactiontypes { get; set; }      public int selectedaccountid { get; set; }     public int selectedcostcenterid { get; set; }     public int selectedpayeeid { get; set; }     [displayname("category")]     public int selectedcategoryid { get; set; }     [displayname("sub category")]     public int selectedsubcategoryid { get; set; }     public int selectedtransactiontypeid { get; set; }     [displayname("budget")]     public int selectedbudgetid { get; set; }      [displayname("transaction date")]     public datetime transactiondate { get; set; }     [displayname("transaction date")]     public string formatteddatetime     {                 {             return transactiondate.tostring("dd/mm/yyyy");          }     }     public int transactionid { get; set; }     public bool deleted { get; set; }     public list<transactionsplitline> transactionsplitlines { get; set; }     public string amount { get; set; }  } 

this may help: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx


Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -