【问题标题】:how to get checkbox property to controller如何将复选框属性获取到控制器
【发布时间】:2018-09-18 22:25:32
【问题描述】:

我有一个复选框,根据我的 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");
            ;
        }
        }
    }

【问题讨论】:

  • 请在 razor 文件中显示您的表单?
  • 您的复选框甚至没有namevalue 属性(它不会发布任何内容,也不会绑定到任何内容)。

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


【解决方案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

【讨论】:

    【解决方案2】:

    如果您想将值传递给控制器​​,您可以使用 html 帮助器使其更简单,并且它也适用于您检查的值

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      • 1970-01-01
      • 2012-08-06
      相关资源
      最近更新 更多