如何在更新模型

时间:2015-12-08 20:56:22

标签: asp.net-mvc-5 entity-framework-6

我正在使用VS2015社区版MVC5 - EF6

我创建了一个简单的模型及其CRUD操作。型号:人物,字段(Id,FirstName,LastName,DateofBirth ......)。

当我更新模型时(添加了两个带默认值的参考字段)。

人物模型的添加字段:(国籍_Id,City_Id),每个字段都是国籍和城市表的外键。

当我回到索引方法

// GET: 
public ActionResult Index()
{
    List<Person> persons = db.Persons.ToList();
    return View(persons);
}


public class Person
{
    public int Id { get; set; }
    public string DocumentCode { get; set; }
    public string Name1 { get; set; }
    public string Name2 { get; set; }
    public string Name3 { get; set; }
    public string Name4 { get; set; }
    public DateTime DateOfBirth { get; set; }
    public Address Address { get; set; }
}

public class Address
{
    public int Id { get; set; }
    public string Name { get; set; }
    public List<Person> persons { get; set; }
}

这是一些控制器方法

    // GET: People
    public ActionResult Index()
    {
        List<Person> persons = db.Persons.ToList();
        return View(persons);
    }


    // GET: People/Create
    public ActionResult Create()
    {
        ViewBag.Addresses = new SelectList(db.Adresses, "Id", "Name");
        return View();
    }

    // POST: People/Create
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "Id,DocumentCode,Name1,Name2,Name3,Name4,DateOfBirth,Address")] Person person)
    {
        if (ModelState.IsValid)
        {
            db.Persons.Add(person);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(person);
    }

以下是创建视图中的一段代码(应负责从视图中检索数据)

    <div class="form-group">
        @Html.LabelFor(model => model.Address, ClinicDemo.App_Start.SystemTranslation.ADDRESS, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
             @Html.DropDownList("Address_Id", (IEnumerable<SelectListItem>)ViewBag.Addresses, new { @class = "form-control" })
            @Html.ValidationMessageFor(model => model.Address, "", new { @class = "text-danger" })
        </div>
    </div>

这是一段代码,它应该根据address_id查看地址名称,即使在一些硬编码数据中它仍然是空的

    <td>
        @Html.DisplayFor(modelItem => item.Address.Name)
    </td>

人物对象返回没有新字段的所有数据,即使我从数据库手动设置它们,当我添加新人时,除了那些字段之外,所有数据都设置正确,

任何帮助?

1 个答案:

答案 0 :(得分:0)

不会为旧数据填充默认值,您需要自己对数据库进行这些更改。应该很简单:

update Person set FieldName = "defaultvalue"