Asp.net mvc 3 MVC3剃须刀模型-更新模型

Asp.net mvc 3 MVC3剃须刀模型-更新模型,asp.net-mvc-3,Asp.net Mvc 3,我是MVC3新手,遇到了一个小问题。我在互联网上搜索了很多话题,比如复杂的模型绑定等,但都没有结果。如果这是一个简单的问题, 我事先道歉 我的课程是这样的: public class Vod { public virtual int id {get; set;} public virtual string myname {get; set;} public virtual Metadata Metadata {get; set;} } public class Meta

我是MVC3新手,遇到了一个小问题。我在互联网上搜索了很多话题,比如复杂的模型绑定等,但都没有结果。如果这是一个简单的问题, 我事先道歉

我的课程是这样的:

public class Vod
{
    public virtual int id {get; set;}
    public virtual string myname {get; set;}
    public virtual Metadata Metadata {get; set;}
}

public class Metadata
{
    public System.Datetime? dtmCreationDate {get; set;}
    public string strCreatedBy {get; set;}
    public string strModifiedBy {get; set;}
    public System.Datetime? dtmModifiedDate {get; set;}
}
下面是我的编辑控制器示例:

[HttpPost]
public ActionResult Edit(Vod vod)
{
    if (ModelState.IsValid)
    {
        db.Entry(vod).State = EntityState.Modified;
        vod.Metadata.strModifiedBy = "modified";
        vod.Metadata.dtmLastModified = DateTime.Now;
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    return View(vod);
}

我的问题是,当我创建或编辑记录并将值保存在数据库中时,如何在控制器中设置这些默认值。目前,上面的代码不起作用,因为我没有正确地执行它(对象引用未设置为对象的实例)。

如果没有看到您的视图,我无法确切地说明为什么它没有绑定。也就是说,不要将您的域模型(vod)绑定到您的操作。使用包含所需vod属性的视图模型

public class VodViewModel
{
    public int id { get; set; }
    public string myname { get; set; }
    //any properties of Metadata you need.
}

public ActionResult Edit(VodViewModel model)

现在,您可以从数据库中获取具有相应id的vod(如果不存在,则使用正确的默认值创建一个新实例)。然后根据视图模型中的属性修改您的vod,然后保存vod。

如果不查看您的视图,我无法确切说明为什么它不绑定。也就是说,不要将您的域模型(vod)绑定到您的操作。使用包含所需vod属性的视图模型

public class VodViewModel
{
    public int id { get; set; }
    public string myname { get; set; }
    //any properties of Metadata you need.
}

public ActionResult Edit(VodViewModel model)

现在,您可以从数据库中获取具有相应id的vod(如果不存在,则使用正确的默认值创建一个新实例)。然后根据视图模型中的属性修改视频点播,然后保存视频点播。

我在这里找到了我想要的内容。我在这里找到了我要找的东西。