Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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
Asp.net mvc ModelState.IsValid无效。为什么我可以创建用户?_Asp.net Mvc_Asp.net Mvc 4_Model - Fatal编程技术网

Asp.net mvc ModelState.IsValid无效。为什么我可以创建用户?

Asp.net mvc ModelState.IsValid无效。为什么我可以创建用户?,asp.net-mvc,asp.net-mvc-4,model,Asp.net Mvc,Asp.net Mvc 4,Model,更新:找到我认为是modelState的原因。isValid为false。 该模型有7个属性。。。我发现这个模型从一个视图中只接收到6个属性 我的复选框未发送到控制器?我应该做什么额外的配置来实现它 这是一种观点: @using (Ajax.BeginForm("Register", "Account", new AjaxOptions { HttpMethod = "POST", OnSuccess = "closeDialog('RegistroUsuario', '<b>Us

更新:找到我认为是modelState的原因。isValid为false。 该模型有7个属性。。。我发现这个模型从一个视图中只接收到6个属性

我的复选框未发送到控制器?我应该做什么额外的配置来实现它

这是一种观点:

 @using (Ajax.BeginForm("Register", "Account", new AjaxOptions { HttpMethod = "POST", OnSuccess = "closeDialog('RegistroUsuario', '<b>Usuário cadastrado com Sucesso!</b>', true)" }, new { id = "FormRegistroUsuario" }))
{
   <fieldset>
        <legend>Cadastro novo Usuário</legend>
       <table id="changePassword">
                <tr>
                    <td class="smallField">Username:</td>
                    <td>@Html.TextBoxFor(m => m.UserName,new { @class = "validate[required]" }) @Html.ValidationMessage("usernameVal", "*")</td>
                </tr>
                <tr>
                    <td>Password:</td>
                    <td>@Html.PasswordFor(m => m.Password, new { @class = "validate[required]" }) @Html.ValidationMessage("passwordVal", "*")</td>
                </tr>
                <tr>
                    <td>Repetir Senha:</td>
                    <td>@Html.PasswordFor(m => m.ConfirmPassword, new { @class = "validate[required,equals[Password]]" }) @Html.ValidationMessage("senhaVal", "*")</td>
                </tr>
                <tr>
                    <td>Email:</td>
                    <td>@Html.TextBoxFor(m => m.Email, new { @class = "validate[required,custom[email]]" }) @Html.ValidationMessage("emailVal", "*")</td>
                </tr>
                <tr>
                    <td>Pergunta Secreta:</td>
                    <td>@Html.TextBoxFor(m => m.SecretQuestion, new { @class = "validate[required]" }) @Html.ValidationMessage("secretVal", "*")</td>
                </tr>
                               <tr>
                    <td>Resposta:</td>
                    <td>@Html.TextBoxFor(m => m.SecretQuestionPassword, new { @class = "validate[required]" }) @Html.ValidationMessage("awnserVal", "*")</td>
                </tr>
                <tr>
                    <td>Ativo:</td>
                    <td><input type="checkbox" name="status" id="status" value="Ativo" data-val="true"/> @Html.ValidationMessage("activeVal", "*")</td>
                </tr>    
            </table>  
       <input type="submit" value="Criar Usuário" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only button-link"/>         
    </fieldset>

}

我终于找到了阿恩瑟。 这个模型真的不一致。输入复选框未发送到模型,因此导致model.isValid为false

我使用一个帮助器html复选框来解决这个问题

<td>@Html.CheckBoxFor(m => m.Active)</td>

非常感谢

仅凭控制器代码很难说,您是否使用自定义成员资格提供程序?这是我的提供程序:
<td>@Html.CheckBoxFor(m => m.Active)</td>
bool checkvalue = bool.Parse(Request.Form.GetValues("Active")[0]);