2012-02-06 10 views
0

ハードコードDateTime.Now(フロントエンド上)新しいレコードが作成されたとき。しかし、私は彼らが入力を必要としないので、フィールドを見たくない。バインドDateTime.NowはMVC3を使用しています。剃刀

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

    return View(tbl_one); 
} 

モデル

public System.DateTime Created { get; set; } 

私は "オブジェクト参照がオブジェクトのインスタンスに設定されていません"

コントローラ投げてるの下にリストされているコードを使用します表示

<div class="editor-field"> 
    @Html.HiddenFor(model => model.Created, Model.Created = DateTime.Now) 
    @Html.ValidationMessageFor(model => model.Created) 
</div> 
+1

? – JaredPar

+0

@ Html.HiddenFor(model => model.Created、Model.Created = DateTime.Now) –

答えて

0

モデルオブジェクトがまだ設定されていないので、あなたがを返却された場合、あなたはそれをインスタンス化する必要がGETリクエストのためのビューを作成します。正直に言うと

[HttpGet] 
public ActionResult Create(tbl_one tbl_one) 
{ 
    return View(new tbl_one()); 
} 
0

を、あなたはおそらく「shouldnフロントエンドでやっている。フロントエンドにDateTime.Nowのようなハードコードされた値を持つ非表示のフィールドを作成した場合、バックエンドでそれをチェックして、セキュリティ上の予防措置として悪意のある値を送信していないことを確認する必要があります。私は単にバックエンドで設定することをお勧めしますので、一度それについて心配する必要があります。

2

部分クレジットへ:MVC3 HTMLHelper defaults

修正:ラインが投げている

@Html.HiddenFor(model => model.Created, new { @Value = System.DateTime.Now }) 
関連する問題