1

I have view for adding very simple objects:

@Html.ValidationSummary(true)
@using (Html.BeginForm())
{
    <div class="editor-label">
        @Html.LabelFor(tag => tag.Name)
    </div>
    <div class="editor-field">
        @Html.EditorFor(tag => tag.Name)
        @Html.ValidationMessageFor(tag => tag.Name)
    </div>
    <input type="submit" value="Insert" class="submit_btn" />
}

I made controller like this:

if (ModelState.IsValid)
{
    ...
    context.Tags.Add(Tag);
    context.SaveChanges();
    return RedirectToAction("Index");
}
return View(Tag);

The model is being generated from database schema (as a part of edmx). Field name nullable property is set to false.

In some way, for blank input "name" the ModelState.IsValid property is true and it's trying to save it (on SaveChanges() it crashes with validation error). Why?

4

2 回答 2

4

IsValid属性ModelState与您的实体模型没有任何关系。查看ModelState您用来装饰模型属性的属性。

例如:

public class Tag {

    [Required]
    public string Name { get; set; }
}

还需要注意的是,使用数据库实体作为 MVC 项目的模型可能不是最好的主意。考虑使用映射器将实体映射到模型,反之亦然。

于 2012-03-07T15:55:06.560 回答
0

您必须在部分类中的 Property 中添加一个Required 属性,只是“不可为空”是不行的。

于 2012-03-07T15:54:51.993 回答