私は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);
}
私の問題は、レコードを作成または編集してデータベースに値を保存するときに、コントローラーでこれらのデフォルト値を設定する方法を理解しようとしていることです。現在、上記のコードは正しく実行されていないため機能しません(オブジェクト参照がオブジェクトのインスタンスに設定されていません)。