Frage

Ich verwende Html.BeginForm und versuche, den angegebenen Wert der Textbox "archName" an den Beitrag zu übergeben. Wie kann ich das tun? Ich meine, was soll ich anstelle von "someString" hinzufügen?

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

War es hilfreich?

Lösung

Der Name, auf den Sie sich beziehen, ist das Namensattribut des Formular-HTML-Elements, nicht die veröffentlichten Werte.Auf Ihrem Controller können Sie auf verschiedene Arten zugreifen.

Ohne Parameter in der Controller-Methode:

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

Mit dem FormCollection als Parameter in der Controller-Methode:

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

Mit etwas Modellbindung:

//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();
}

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top