我有一个复选框,根据我的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");
;
}
}
}
答案 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
}
}
答案 1 :(得分:0)
如果您想将值传递给控制器,您可以使用html帮助器使其更简单,并且它可以与您选中的值一起使用
@Html.CheckBoxFor(x => setting.GSuccess)