2016-08-13 2 views
-1

Ich möchte in der Lage sein, ein paar Kästchen auszuwählen und die Zeichenfolgen zu senden, die mit ihnen korrelieren. Das Problem ist jedoch, dass ich nicht weiß, wie man die Werte im Controller abfängt.asp.net mvc Abrufen von Werten aus Html.Checkbox

Ein wichtiges Problem ist, dass ich es nicht an ein Modell binden möchte! Hoffentlich können Sie mir helfen, eine Lösung zu finden, die in diesem Bild paßt

cshtml Datei:

@model IEnumerable<WebApplication1.Models.WikiPage> 
@using (Html.BeginForm("DeletePages", "Home", FormMethod.Post)) 
{ 
<ul> 
    @foreach (var item in @Model) 
    { 
     <li> 
      @Html.CheckBox(item.Title) 
      @Html.Label(item.Title) 
     </li> 
    } 
</ul> 
<input type="submit" value="Delete pages" /> 
} 

Und hier ist der Teil in der Steuerung. String ... wird null sein und ich weiß nicht, was ich da hineinlegen sollte, um die Werte zu erfassen

[HttpPost] 
    public ActionResult DeletePages(String... Titles) 
    { 

     removePages(Titles); 
     List<WikiPage> pages = db.WikiPages.ToList(); 

     return View(pages); 
    } 

Hoffe, du kannst mir helfen!

Mit freundlichen Grüßen

+1

'@ Html.CheckBox()' ist zu einem 'bool' Bindung, kein String. Wenn Sie ein Array von Strings zurück posten möchten, dann generieren Sie Ihre Eingaben manuell '

Antwort

0

Ausblick:

@model IEnumerable<WebApplication1.Models.WikiPage> 
@using (Html.BeginForm("DeletePages", "Home", FormMethod.Post)) 
{ 
<ul> 
    @foreach (var item in Model) 
    { 
     <li> 
      <label>@item.Title 
       <input type="checkbox" name="titles" value="@item.Title /> 
      </label> 
     </li> 
    } 
</ul> 
<input type="submit" value="Delete pages" /> 
} 

Controller:

[HttpPost] 
public ActionResult DeletePages(string[] titles) 
{ 
    removePages(titles); 
    List<WikiPage> pages = db.WikiPages.ToList(); 

    return View(pages); 
} 
Verwandte Themen