2015-02-05 120 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(); %> 
相關問題