Come inviare il valore della casella di testo tramite POST
-
27-10-2019 - |
Domanda
Sto usando Html.BeginForm e sto provando a passare il valore fornito della casella di testo "archName" al post, come posso farlo? Voglio dire, cosa dovrei aggiungere al posto di "someString"?
<% using (Html.BeginForm("addArchive", "Explorer", new { name = "someString" }, FormMethod.Post)) { %>
<%= Html.TextBox("archName")%>
Soluzione
Il nome a cui ti riferisci è l'attributo name dell'elemento HTML del modulo, non i valori pubblicati.Sul tuo controller puoi accedere ad alcuni modi.
Senza parametri nel metodo del controller:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult addArchive()
{
string archName = HttpContext.Reqest.Form["archName"]
return View();
}
Con FormCollection
come parametro nel metodo controller:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult addArchive(FormCollection form)
{
string archName = form["archName"];
return View();
}
Con alcuni vincoli di modello:
//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();
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow