2015-02-05 111 views
0

有人可以帮我吗?将视图(aspx)的输入值传递给控制器​​

我想将两个文本框的输入值传递给视图的控制器。

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/personenbeheer.master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<UDL.Domain.Persoon>>" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="PersonenbeheerContent" runat="server"> 

    <legend class="form-signin-heading">Personenlijst</legend> 
    <% Html.BeginForm("Index", "Persoon", FormMethod.Get);%> 
    <% var currentUser = HttpContext.Current.User; %> 
    <% if (currentUser.IsInRole("Beheerder")) 
     { %> 

    <nav> 
     <ul class="nav nav-pills nav-justified" role="tablist"> 
      <li role="presentation" class="alert-info" style="border: 2px solid white; border-radius: 5px;"><%: Html.ActionLink("Maak persoon aan", "Create", null, new { @class="UDLbutton" })%></li> 
      <li role="presentation" class="alert-info" style="border: 2px solid white; border-radius: 5px;"><%: Html.ActionLink("Lijst Pdf", "PrintPersonen", new { sort = ViewData["sort"], zoeknaam = ViewData["zoekNaam"]}, new { target = "_blank",@class="UDLbutton"}) %></li> 
      <li role="presentation" class="alert-info" style="border: 2px solid white; border-radius: 5px;"> 
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#etiketten"> Adres etiketten</button></li> 
      <li role="presentation" class="alert-info" style="border: 2px solid white; border-radius: 5px;"><%: Html.ActionLink("Export emailadressen","ExportEmails", new { sort = "Adres", zoeknaam = ViewData["zoekNaam"]}, new { target = "_blank",@class="UDLbutton"}) %></li> 
     </ul> 
    </nav> 
    <% } %> 


    <% Html.BeginForm("Index", "Persoon", FormMethod.Post); 

     { %> 

      <input type="text" id="txtA"/> 

      <input type="text" id="txtB"/> 

      <input type="submit" value="Verzenden"/> 

    <% } %> 

正如你可以看到我使用两次Html.BeginForm对于同样的方法,但一旦一个GET,一次一个职位。但文章没有工作:(

这是控制器:

// 
// GET: /Persoon/ 
[Authorize(Roles = "Gebruiker, Beheerder")] 
public ActionResult Index(string sortOrder, string zoekNaam, int? page, string huidigefilter) 
{ 
    //huidige zoekfilter 
    ViewBag.huidigzoeken = sortOrder; 
    //ViewBags om waarden door te geven naar de View en ze geven data over het sorteren door 
    ViewBag.PersoonIDSortParm = String.IsNullOrEmpty(sortOrder) ? "PersoonID_desc" : ""; 
    ViewBag.NaamSortParm = sortOrder == "Naam" ? "Naam_desc" : "Naam"; 
    ViewBag.AanhefSortParm = sortOrder == "Aanhef" ? "Aanhef_desc" : "Aanhef"; 
    ViewBag.GemeenteSortParm = sortOrder == "Gemeente" ? "Gemeente_desc" : "Gemeente"; 
    ViewBag.GeslachtSortParm = sortOrder == "Geslacht" ? "Geslacht_desc" : "Geslacht"; 
    ViewBag.AdresSortParm = sortOrder == "Adres" ? "Adres_desc" : "Adres"; 
    ViewBag.VoornaamSortParm = sortOrder == "Voornaam" ? "Voornaam_desc" : "Voornaam"; 
    ViewBag.TelefoonSortParm = sortOrder == "Telefoon" ? "Telefoon_desc" : "Telefoon"; 
    ViewBag.GSMSortParm = sortOrder == "GSM" ? "GSM_desc" : "GSM"; 
    ViewBag.EmailSortParm = sortOrder == "Email" ? "Email_desc" : "Email"; 
    ViewBag.PartnerSortParm = sortOrder == "Partner" ? "Partner_desc" : "Partner"; 
    ViewBag.OpmerkingenSortParm = sortOrder == "Opmerkingen" ? "Opmerkingen_desc" : "Opmerkingen"; 
    //ViewBag.StatusLidSortParm = sortOrder == "StatusLid" ? "StatusLid_desc" : "StatusLid"; 
    ViewBag.huidigefilter = zoekNaam; 

    ViewData["sort"] = sortOrder; 
    ViewData["zoekNaam"] = zoekNaam; 

    //Enkel de personen tonen die geen lid zijn 
    var personen = PersoonBLL.SorteerZoeken(sortOrder, zoekNaam, page, huidigefilter); 
    ViewData["PersonenCount"] = PersoonBLL.SorteerZoekenNotPaged(sortOrder, zoekNaam).ToList().Count; 
    return View(personen); 
} 

[HttpPost] 
public ActionResult Index(String a, String b) 
{ 
    return View("Index"); 
} 

我使用的HttpPost方法中设置断点,但它从未打算

回答

0

您需要设置name属性。每个input元素在控制器方法与参数名称匹配

所以,你应该在你的观点:

<input type="text" id="txtA" name="txtA" /> 
<input type="text" id="txtB" name="txtB" /> 

而在你的控制器:

public ActionResult Index(String txtA, String txtB) 
+0

仍然不工作:(断点没有被解雇 – Christophe 2015-02-05 13:59:17

+0

显然第一个Html.BeginForm没有关闭,因为当我检查m时Chrome中的y页面POST表单位于GET表单内... – Christophe 2015-02-05 14:02:58

0

如果你想让你的页面中有两种形式,你必须这样做,以结束形式:

<%Html.EndForm(); %> 

所以现在我的代码看起来是这样的:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/personenbeheer.master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<UDL.Domain.Persoon>>" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="PersonenbeheerContent" runat="server"> 

    <legend class="form-signin-heading">Personenlijst</legend> 
    <% Html.BeginForm("Index", "Persoon", FormMethod.Get);%> 
    <% var currentUser = HttpContext.Current.User; %> 
    <% if (currentUser.IsInRole("Beheerder")) 
     { %> 

    <nav> 
     <ul class="nav nav-pills nav-justified" role="tablist"> 
      <li role="presentation" class="alert-info" style="border: 2px solid white; border-radius: 5px;"><%: Html.ActionLink("Maak persoon aan", "Create", null, new { @class="UDLbutton" })%></li> 
      <li role="presentation" class="alert-info" style="border: 2px solid white; border-radius: 5px;"><%: Html.ActionLink("Lijst Pdf", "PrintPersonen", new { sort = ViewData["sort"], zoeknaam = ViewData["zoekNaam"]}, new { target = "_blank",@class="UDLbutton"}) %></li> 
      <li role="presentation" class="alert-info" style="border: 2px solid white; border-radius: 5px;"> 
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#etiketten"> Adres etiketten</button></li> 
      <li role="presentation" class="alert-info" style="border: 2px solid white; border-radius: 5px;"><%: Html.ActionLink("Export emailadressen","ExportEmails", new { sort = "Adres", zoeknaam = ViewData["zoekNaam"]}, new { target = "_blank",@class="UDLbutton"}) %></li> 
     </ul> 
    </nav> 
    <% } %> 

    <%Html.EndForm(); %> 

<% Html.BeginForm("Index", "Persoon", FormMethod.Post); 

     { %> 

      <input type="text" id="txtA" name="txtA"/> 

      <input type="text" id="txtB" name="txtB"/> 

    <input type="submit" value="Verzenden"/> 




    <% } %> 

    <%Html.EndForm(); %> 
相关问题