如何将checkbox属性设置为控制器

时间:2018-04-09 13:36:13

标签: c# asp.net-mvc razor checkbox

我有一个复选框,根据我的xml中的值进行检查,但是我如何从视图中获取值到控制器

我的观点

 @using (Html.BeginForm("Settings", "Home", FormMethod.Post))
    {
    foreach (SettingsModel setting in Model)
    {
    <input @(Convert.ToBoolean(setting.GSuccess)==true ? "checked='checked'" : string.Empty) type="checkbox" /></td>
    @Html.ActionLink("Gem", "", null, new { @id = "submit" })
    }

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#submit").click(function () {
                document.forms[0].submit();
                return false;
            });
        });
    </script>

我的行动结果

    [AcceptVerbs(HttpVerbs.Post), ActionName("Settings")]
            public ActionResult Save(SettingsModel setting)
            {
                Boolean gSuccess = setting.GSuccess;

                List<SettingsModel> settings = new List<SettingsModel>();
                XmlDocument doc = new XmlDocument();
                doc.Load(Server.MapPath("~/XML/Settings.xml"));
                foreach (XmlNode node in doc.SelectNodes("/Settings/UserSettings"))
                {
                    settings.Add(new SettingsModel
                    {
                        GSuccess = Boolean.Parse(node["GSuccess"].InnerText)
 });
                doc.Save(Server.MapPath("~/XML/Settings.xml"));
            }
                return RedirectToAction("Settings", "Home");
            ;
        }
        }
    }

2 个答案:

答案 0 :(得分:1)

如果选中复选框,则回发值将包含键值对。

在剃须刀中,为复选框列表添加名称:

<input @(Convert.ToBoolean(setting.GSuccess)==true ? "checked='checked'" : string.Empty) 
type="checkbox" name="nameOfYourCheckboxList" /></td>

在您的控制器中使用以下内容:

[HttpPost]
public ActionResult Save(FormCollection collection)
{
     if(!string.IsNullOrEmpty(collection["nameOfYourCheckboxList"])
     {
         //do whatever you need here       
     }
}

替代解决方案:12

答案 1 :(得分:0)

如果您想将值传递给控制器​​,您可以使用html帮助器使其更简单,并且它可以与您选中的值一起使用

@Html.CheckBoxFor(x => setting.GSuccess)