Asp.net mvc 如何关闭MVC表单验证

Asp.net mvc 如何关闭MVC表单验证,asp.net-mvc,validation,razor,Asp.net Mvc,Validation,Razor,我有一个数据优先设置,所以我的模型是由实体框架从我的数据库生成的,没有默认的[必需的]注释。我有一个包含三个字段的简单表。一个ID和两个基于VARCHAR/文本的字段 无论我尝试什么,我都无法让CRUD表单停止验证。我在Web.config中禁用了,我将[ValidateInputfalse]添加到控制器中的Create方法,但没有效果。我将@Html.ValidationSummary设置为false 这是基本观点: @using (Html.BeginForm()) { @Html.Vali

我有一个数据优先设置,所以我的模型是由实体框架从我的数据库生成的,没有默认的[必需的]注释。我有一个包含三个字段的简单表。一个ID和两个基于VARCHAR/文本的字段

无论我尝试什么,我都无法让CRUD表单停止验证。我在Web.config中禁用了,我将[ValidateInputfalse]添加到控制器中的Create方法,但没有效果。我将@Html.ValidationSummary设置为false

这是基本观点:

@using (Html.BeginForm()) {
@Html.ValidationSummary(false)

<fieldset>
    <legend>CallType</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.CALLTYPE)
    </div>
    <div class="editor-field">
        @Html.TextBox("calltype", "", new { style = "width: 50px;" })
        @Html.ValidationMessageFor(model => model.CALLTYPE) 
    </div>

    <div class="editor-label">
        @Html.LabelFor(model => model.DESCRIPTION)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.DESCRIPTION)
        @Html.ValidationMessageFor(model => model.DESCRIPTION)
    </div>

    <p>
        <input type="submit" value="Create" />
    </p>
</fieldset>
}
即使我在每个字段中只插入一个字符,它仍然会显示:值“x”无效 我将验证消息保持打开状态,以便查看发生了什么

我该怎么办?我以后将如何验证这些字段?我可以只向模型生成的代码中添加[Required]吗?如果我从数据库中重新生成模型呢

这是否与控制器中的模型状态有关

[HttpPost]
    public ActionResult Create(CALLTYPES2 calltype)
    {
        if (ModelState.IsValid)
        {
            db.CALLTYPES2.Add(calltype);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(calltype);
}
我不确定我遗漏了什么,我读过的教程也没有多少启发。谢谢你的回复,并为我的无知道歉

更新

发现我的错误-方法Create中的对象名称calltype与表单字段calltype的名称/id相同。我猜绑定器试图将字符串calltype绑定到对象calltype。将其重命名为:

public ActionResult Create(CALLTYPES2 ctype)
现在它可以在编辑和创建窗口中工作。ctype与calltype没有冲突。

您忘记在表单中包含ID字段。您可以将其作为隐藏字段包含:

@Html.HiddenFor(model => model.ID)

现在,在提交表单时,ID属性的值将发送到服务器,默认的模型活页夹不会有任何问题。

感谢您的回复。但是,添加隐藏字段不会产生任何影响。现在还没有ID,所以我输入了默认值,但没有运气。我发现Model.IsValid不是true,并且在到达控制器时传递的calltype对象为null。试图找出原因。似乎是有约束力的问题?
@Html.HiddenFor(model => model.ID)