获取MVC3中复选框的值

Ron*_*ald 1 c# asp.net-mvc asp.net-mvc-partialview asp.net-mvc-3

我在页面上有一些html复选框,我需要验证他们是否已检查页面的回发事件.

这些复选框的数据不存储在数据库中,只需在使用之前进行检查即可进入下一页.

我如何验证它们已被检查?我在Request.Form.AllKeys集合中看不到它们

<input id='terms_eligibility' type='checkbox'   />
<input id='terms_accurate' type='checkbox' />
<input id='terms_score_release' type='checkbox' />
Run Code Online (Sandbox Code Playgroud)

编辑这是我最终做的

视图

 @Html.CheckBox("terms_eligibility")
Run Code Online (Sandbox Code Playgroud)

调节器

string eligibility = Request.Form.GetValues("terms_eligibility")[0];
Run Code Online (Sandbox Code Playgroud)

Jam*_*mes 8

使用MVC,您应该使用视图模型来跟踪复选框状态,例如

public class MyViewModel
{
    public bool TermsEligibility { get; set; }
    public bool TermsAccurate { get; set; } 
    public bool TermsScoreRelease { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

让MVC将属性映射到控件:

@model MyViewModel

@Html.BeginForm("MyAction", "MyController", FormMethod.Post, new { id = "myFormId" })
{
    @Html.CheckBoxFor(m => m.TermsElibility)
    @Html.CheckBoxFor(m => m.TermsAccurate)
    @Html.CheckBoxFor(m => m.TermsScoreRelease)   
    <input id="saveBtn" type="submit" value="Save" />
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以在发布结果时访问模型中的值:

[HttpPost]
public ActionResult MyAction(MyViewModel model)
{
    if (model.TermsEligibility)
    {
        ....
    }
}
Run Code Online (Sandbox Code Playgroud)