Pregunta

Estoy usando Html.BeginForm e intento pasar el valor proporcionado del textBox "archName" a la publicación, ¿cómo puedo hacer eso? Quiero decir, ¿qué debo agregar en lugar de "someString"?

<% using (Html.BeginForm("addArchive", "Explorer", new { name = "someString" }, FormMethod.Post)) { %> 
    <%=  Html.TextBox("archName")%>
¿Fue útil?

Solución

El nombre al que se refiere es el atributo de nombre del elemento HTML del formulario, no los valores publicados.En su controlador puede acceder a varias formas.

Sin parámetro en el método del controlador:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult addArchive()
{
    string archName = HttpContext.Reqest.Form["archName"]
    return View();
}

Con el FormCollection como parámetro en el método del controlador:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult addArchive(FormCollection form)
{
    string archName = form["archName"];
    return View();
}

Con algunos modelos de encuadernación:

//POCO
class Archive
{
    public string archName { get; set; }
}

//View
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<Namespace.Archive>" %>    
<%= Html.TextBoxFor(m => m.archName) %>

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult addArchive(Archive arch)
{
    string archName = arch.archName ;
    return View();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top