Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

FormCollection Empty on Form Post in ASP.NET-MVC

I am posting a very simple form using a method I have used frequently in the past. It may be easier to show my code rather than type a lengthy explanation. Here's the HTML:

<% Html.BeginForm("CreateMarketingType", "ListMaintenance"); %>     <div id="ListMaintenanceContainer">         <table>             <tr>                 <th>Marketing Type Id</th>                 <th>Marketing Type Name</th>             </tr>                                     <%foreach (MarketingType marketingType in ViewData.Model.MarketingTypes) %>                 <%{ %>                     <tr>                         <td><%= marketingType.MarketingTypeId.ToString() %></td>                         <td><%= marketingType.MarketingTypeName %></td>                     </tr>                 <%} %>         </table>         <div>             <fieldset id="fsSaveNewMarketingType">                 <legend>Add New Marketing Type</legend>                 <label for="txtNewMarketingTypeName">New Marketing Type Name:</label>                 <input type="text" id="txtNewMarketingTypeName" />                 <input type="submit" value="Save" id="CreateMarketingType" />             </fieldset>         </div>                         </div> <% Html.EndForm();%> 

And here's the controller code:

[AcceptVerbs(HttpVerbs.Post)] public ActionResult CreateMarketingType(FormCollection form) {     string newMarketingTypeName = Request.Form["txtNewMarketingTypeName"].ToString();      MarketingType newMarketingType = new MarketingType() { MarketingTypeName = newMarketingTypeName };      _marketingTypeRepository.AddNewMarketingType(newMarketingType);      return View("ListMaintenance", GetModel()); } 

The submit button posts the form, and the method is invoked, but the form object defined in my parameter is empty. I have also tried Request.Form and I get the same result. Am I missing something here?

like image 651
Mark Struzinski Avatar asked Feb 02 '09 20:02

Mark Struzinski


1 Answers

None of your inputs have a name attribute. No name = not in the FormCollection.

like image 179
Craig Stuntz Avatar answered Sep 19 '22 18:09

Craig Stuntz