如何 Post .NET 中的单选按钮

How to Post a Radiobutton in .NET

我正在尝试使用以下代码 Post 来自单选按钮的值。

@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>
}

具有基本的 Post 形式

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

如何引用 html 中的值?提前致谢

编辑: 将表格更改为

@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"); 
     }

要post单选按钮变化时的表单,您需要一些javascript代码。以下是如何使用 jQuery:

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

这段代码将提交单选按钮所在的表单。

如果我是你,我会创建一个模型并将该模型传递到我的视图并为其创建单选按钮。像这样:

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

然后在您的视图中,您可以使用 html 助手为您创建单选按钮组:

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

控制器将接收所选的值。

// would this work???

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

像这样使用模型:

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

但请记住将模型传递给您的视图并确保 SelectedHomeShow 属性 已设置。更好的方法是使其读起来像业务规则,因此在您的模型中,您可以为该特定规则设置另一个 属性:

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";
    }
}