Estoy tratando de pasar una variable de cadena dentro de asp.net MVC. Utilizo puntos de interrupción, así que veo que va al método correcto en el controlador, pero las variables publicadas son nulas.Pasando variables con POST en ASP.NET MVC
Mi marcado:
@{
ViewBag.Title = "TestForm";
}
<h2>TestForm</h2>
@using (Html.BeginForm()) {
<input type="text" id="testinput" />
<input type="submit" value="TestForm" />
}
Mi controlador:
public ActionResult TestForm()
{
return View();
}
[HttpPost]
public ActionResult TestForm(string testinput)
{
Response.Write("[" + testinput + "]");
return View();
}
pongo el punto de interrupción en el interior del segundo método TestForm y testinput es nula .... Me estoy perdiendo algo?
Nota: Me doy cuenta de que la mayoría de las veces voy a utilizar el modelo para pasar datos, pero me gustaría saber que también puedo pasar cadenas.
Como parte de la misma pregunta, ¿cómo paso varias variables? El método en mi controlador sería este:
[HttpPost]
public ActionResult TestForm(string var1, var2)
{
}
sí funcionó hmmmm!. ¿Por qué MS decidió confiar en un nombre y no en un ID? ¿Por qué siempre lo hacen al revés? ¡Pero gracias! – sarsnake
No, Microsoft es realmente genial con mvc, no piense en Microsoft al respecto. Se trata de estándares web. Básicamente, la propiedad id se utiliza para aplicar javascript (getElementsById, CSS-StyleSheets, jQuery y más). La propiedad del nombre es relevante para las publicaciones y las actividades asincrónicas (basadas en datos). – dknaack
En un formulario html regular, nunca tuve que especificar la propiedad del nombre, el id siempre fue suficiente y las variables se publicaron correctamente. – sarsnake