Sto pubblicando un modulo molto semplice utilizzando un metodo che ho usato frequentemente in passato. Potrebbe essere più facile mostrare il mio codice piuttosto che digitare una lunga spiegazione. Ecco il codice HTML:FormCollection Empty on Form Post in ASP.NET-MVC
<% 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();%>
Ed ecco il codice del controller:
[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());
}
L'presentare i messaggi pulsante il modulo e il metodo viene richiamato, ma l'oggetto forma definita nel mio parametro è vuoto. Ho anche provato Request.Form e ottengo lo stesso risultato. Mi sto perdendo qualcosa qui?
Ouch - questo è quello che ottengo per crescere su WebForms !! Pensavo che l'attributo id passasse i valori attraverso il form. Grazie per la risposta!! –
Grazie! Anch'io ho pensato che l'attributo id lo avrebbe fatto ... –
Questo è sorprendente perché tutto sembra aver puntato solo sull'uso dell'ID. Le cose non come sembravano ... per me comunque .. –