Estoy publicando un formulario muy simple utilizando un método que he utilizado con frecuencia en el pasado. Puede ser más fácil mostrar mi código en lugar de escribir una explicación larga. Aquí está el código HTML:FormCollection Vacío en el formulario publicado en 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();%>
Y aquí está el código del controlador:
[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());
}
El enviar mensajes de botón del formulario, y se invoca el método, pero el objeto de formulario definido en mi parámetro está vacío. También probé Request.Form y obtengo el mismo resultado. ¿Me estoy perdiendo de algo?
Ouch - ¡eso es lo que obtengo al crecer en WebForms! Pensé que el atributo id pasó los valores en el formulario. ¡¡Gracias por la respuesta!! –
¡Gracias! Yo también pensé que el atributo id lo haría ... –
Esto es sorprendente, ya que todo parece indicar que solo se usa el ID. Las cosas no son como parecían ... para mí de todos modos ... –