Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法检查控制器中的单选按钮选择值_C#_Asp.net Mvc_Asp.net Mvc 3_Asp.net Mvc 4 - Fatal编程技术网

C# 无法检查控制器中的单选按钮选择值

C# 无法检查控制器中的单选按钮选择值,c#,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,我有4个单选按钮,在视图中,我是从下面这样的模型绑定这些 @model MVC.Models.DeleteModel @using (@Html.BeginForm("Submit", "Delete")) { <div class=".editor-field"> @Html.Label("Delete"); </div> <div class =".editor-field"> @Html.RadioButtonF

我有4个单选按钮,在视图中,我是从下面这样的模型绑定这些

@model MVC.Models.DeleteModel
@using (@Html.BeginForm("Submit", "Delete"))
{

   <div class=".editor-field">
       @Html.Label("Delete");
   </div>

   <div class =".editor-field">
   @Html.RadioButtonFor(m=>m.IsDeleteByItemChecked,"By Item")
       @Html.Label("By Item")
  </div>
    <div class =".editor-field">
   @Html.RadioButtonFor(m=>m.IsDeleteByVendorChecked,"By Vendor")
         @Html.Label("By Vendor")

        @Html.RadioButtonFor(m=>m.IsCancelPageChecked,"Cancel Page")
         @Html.Label("Cancel Page")
  </div>
  <div class =".editor-field">
   @Html.RadioButtonFor(m=>m.IsDeleteByMemberChecked,"By Member")
       @Html.Label("By Member")
  </div>

    <div class=".editor-field">
           <input id="btnSubmitChanges" type="submit" value="Submit" />
        </div>    
}
这是我的控制器

    [HttpPost]
    public ActionResult Submit(DeleteModel deleteModel)
    {

        //some coding stuff

         //here i am checking the radio button for selected one 
        if (deleteModel.IsDeleteByItemChecked)
        {

            DeleteItem deleteByItemInsert = new DeleteItem();
            deleteByItemInsert.DeleteField = "ITEM";
            deleteByItemInsert.DeleteIndicator = char.MinValue;
            deleteByItemInsert.DeleteValue = itemDTO.ItemID;
        }
        if (deleteModel.IsDeleteByMemberChecked)
        {
            DeleteItem deleteByMemberInsert = new DeleteItem();
            deleteByMemberInsert.DeleteField = "MEMBER";
            deleteByMemberInsert.DeleteIndicator = char.MinValue;
            deleteByMemberInsert.DeleteValue = "";
        }
问题是,如果我选择
first单选按钮
,然后单击
submit按钮
它在控制器内的第一个if条件,但是
第一个if条件
给出的是false

如何检查侧控制器中是否选择了单选按钮

请问有谁能解决这个问题吗


另一个问题是,如果我先选择第一个单选按钮,然后再选择第二个单选按钮,我无法取消选择第一个单选按钮。如何更正此单选按钮……

这两个问题是相关的。通过稍微修改模型,您将能够对单选按钮进行分组,以便单击可以取消选择其他按钮,并检查所选的值

首先,将模型修改为:

public class DeleteModel
{

    public string DeleteBy { get; set; }

    [Display(Name = "By Item")]
    public string ByItem { get; set; }

    [Display(Name = "By Vendor")]
    public string ByVendor { get; set; }

    [Display(Name = "By Member")]
    public string ByMember { get; set; }

    [Display(Name = "Cancel Page")]
    public string CancelPage { get; set; }

}
Html.RadioButtonFor()的第一个参数应该是您正在使用的属性名,第二个参数应该是特定单选按钮的值。然后,它们将具有相同的名称属性值,并且当/如果给定的单选按钮与属性值匹配时,助手将选择该单选按钮

继续修改DeleteModel类,这将使视图变成:

  <div class =".editor-field">
   @Html.RadioButtonFor(m=>m.DeleteBy,"item")
       @Html.Label("By Item")
  </div>
    <div class =".editor-field">
   @Html.RadioButtonFor(m=>m.DeleteBy,"vendor")
         @Html.Label("By Vendor")

   @Html.RadioButtonFor(m=>m.DeleteBy,"page")
         @Html.Label("Cancel Page")
  </div>
  <div class =".editor-field">
   @Html.RadioButtonFor(m=>m.DeleteBy,"member")
       @Html.Label("By Member")
  </div>

这两个问题是相关的。通过稍微修改模型,您将能够对单选按钮进行分组,以便单击可以取消选择其他按钮,并检查所选的值

首先,将模型修改为:

public class DeleteModel
{

    public string DeleteBy { get; set; }

    [Display(Name = "By Item")]
    public string ByItem { get; set; }

    [Display(Name = "By Vendor")]
    public string ByVendor { get; set; }

    [Display(Name = "By Member")]
    public string ByMember { get; set; }

    [Display(Name = "Cancel Page")]
    public string CancelPage { get; set; }

}
Html.RadioButtonFor()的第一个参数应该是您正在使用的属性名,第二个参数应该是特定单选按钮的值。然后,它们将具有相同的名称属性值,并且当/如果给定的单选按钮与属性值匹配时,助手将选择该单选按钮

继续修改DeleteModel类,这将使视图变成:

  <div class =".editor-field">
   @Html.RadioButtonFor(m=>m.DeleteBy,"item")
       @Html.Label("By Item")
  </div>
    <div class =".editor-field">
   @Html.RadioButtonFor(m=>m.DeleteBy,"vendor")
         @Html.Label("By Vendor")

   @Html.RadioButtonFor(m=>m.DeleteBy,"page")
         @Html.Label("Cancel Page")
  </div>
  <div class =".editor-field">
   @Html.RadioButtonFor(m=>m.DeleteBy,"member")
       @Html.Label("By Member")
  </div>