2017-01-12 4 views
0

Ich versuche, den Wert von einem Optionsfeld mit dem folgenden Code zu buchen.So senden Sie einen Radiobutton in .NET

@using (Html.BeginForm("RdButton", "Search", FormMethod.Post)) 
{ 
    <span style="white-space:nowrap;"> 
    <input type="radio" id="HomeShow" name="HomeShow" value="AssemblyDrawings" checked/> Assembly Drawings 
    <input type="radio" id="HomeShow" name="HomeShow" value="RelatedLiterature"/> Related Literature 
    <input type="radio" id="HomeShow" name="HomeShow" value="StockParts"> List of stock parts 
    </span> 
} 

Mit einer grundlegenden Beitrag Form

[HttpPost] 
public ActionResult RdButton(string HomeShow = "")  
{ 
    string rdValue = HomeShow; 
    return View(rdValue); 
} 

Wie würde ich den Wert in dem HTML-Code verweisen? Vielen Dank im Voraus

Edit: abgewandelter Form zu

@using (Html.BeginForm("RdButton", "Search", FormMethod.Post)) 
{ 
    <span style="white-space:nowrap;"> 
     @Html.RadioButtonFor(x => x.Show, "Assembly") 
     @Html.RadioButtonFor(x => x.Show, "Literature") 
     @Html.RadioButtonFor(x => x.Show, "Parts") 
    </span> 
} 
// would this work??? 
string rdobtn = String.Format("{0}", Request.Form["RdButton"]); 
if (rdobtn == "") 
    { 
     @Html.Partial("_gotopage"); 
    } 
+0

Sie einen Submit-Button in Ihrem Formular hinzufügen müssen – Stormhashe

+0

Kann ich das Formular senden, wenn der Radiobutton geändert wird? – Niescier19

+0

Sicher, aber Sie brauchen Javascript, um es automatisch zu übermitteln, wenn das das ist, was Sie suchen. suche nach "submit form with javascript" – Stormhashe

Antwort

0

das Formular zu schreiben, wenn Änderungen Radio-Button, Sie einige Javascript-Code benötigen. Hier ist, wie es mit jQuery zu tun:

$('input[type=radio]').on('change', function() { 
    $(this).closest("form").submit(); 
}); 

Das Stück Code wird das Formular in dem das Optionsfeld befindet.

Wenn ich Sie wäre, würde ich ein Modell erstellen und dieses Modell an meine Ansicht übergeben und die Optionsfelder dafür erstellen. Wie folgt aus:

public class HomeShowModel 
{ 
    public string SelectedHomeShow { get; set; } 
    // Other properties you may need 
} 

Dann Ihrer Ansicht nach können Sie HTML-Helfer verwenden, um die Radiobutton-Gruppe für Sie zu erstellen:

@Html.RadioButtonFor(m=>m.SelectedHomeShow ,"AssemblyDrawings") 
@Html.RadioButtonFor(m => m.SelectedHomeShow , "RelatedLiterature") 
@Html.RadioButtonFor(m => m.SelectedHomeShow , "StockParts") 

Die der Regler den Wert erhalten, die ausgewählt wurde.

// würde das funktionieren ???

Zeichenfolge rdobtn = String.Format ("{0}", Request.Form ["RdButton"]);

das Modell verwenden, das wie dies zu tun:

if (Model.SelectedHomeShow == "StockParts") { // code... } 

Aber denken Sie daran, das Modell zu Ihrer Sicht passieren und stellen Sie sicher, dass die SelectedHomeShow Eigenschaft festgelegt ist. Ein besserer Ansatz zu machen wäre, so dass es wie eine Geschäftsregel liest und daher in Ihrem Modell, Sie eine andere Eigenschaft für diese spezielle Regel haben:

public class HomeShowModel 
{ 
    public string SelectedHomeShow { get; set; } 
    // Other properties you may need 

    // Name this property something meaningful 
    public bool NeedsPartial 
    { 
     return this.SelectedHomeShow == "StockParts"; 
    } 
} 
+0

Wie würde ich den Wert des Radiobuttons in meinem HTML testen? – Niescier19

+0

Was meinst du mit dem Wert in meinem HTML? – CodingYoshi

+0

'if (Model.SelectedHomeShow ==" Assembly ") {Dinge tun}' – Niescier19

Verwandte Themen