2016-04-05 25 views
0

なぜ次のエラーが表示されるのですか?オブジェクト参照がオブジェクトのインスタンスに設定されていない

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

「null」として保存することはできませんが、それには価値がありますか、間違っているのでしょうか?私はそれをどうやってやるべきか見ていないで、別の方法を試してみましたか?

モデル:

public class BookTime 
    { 
     public int Id { get; set; } 
     public string Name { get; set; } 
     public string Email { get; set; } 
     public string Phone { get; set; } 
     public int Zip { get; set; } 
     public string City { get; set; } 
     public string Address { get; set; } 
     public string Month { get; set; } 
     public string Date { get; set; } 
    } 

のcontroler:

public ActionResult _BookTime(BookTime Booktime) 
     { 
      db.BookTimes.Add(Booktime); 

      Booktime.Month = Request.Form["Month"].ToString(); 
      Booktime.Date = Request.Form["Date"].ToString(); 


      db.SaveChanges(); 
    return Redirect("Index"); 
     } 

ビュー:

<div class="col-sm-6"> 
      <b>Månede</b> 
      <select class="form-control" id="Month" required> 
       <option value="0">Vælg Dag</option> 
       <option value="Januar">Januar</option> 
       <option value="Febuar">Febuar</option> 
       <option value="Marts">Marts</option> 
       <option value="April">April</option> 
       <option value="Maj">Maj</option> 
      </select> 
     </div> 
     <div class="col-sm-6"> 
      <b>Dag</b> 
      <select class="form-control" id="Date" required> 
       <option value="0">Vælg Dato</option> 
       <option value="1">1</option> 
       <option value="2">2</option> 
       <option value="3">3</option> 
       <option value="4">4</option> 
       <option value="5">5</option> 
      </select> 
     </div> 
+0

を投げ、私はなぜ私がエラーを取得しています知っています。私はちょうどそれを修正することはできません、このussaly作品。 – unscope

+2

'name =" Month "と' name = "Date"(フォームは 'name'属性に基づいて名前と値のペアを返す)のフォームコントロールはありません。名前属性を追加する場合は、無意味な 'Request.Form'アクセスを削除してください。モデルはすでに値でバインドされています。最後に、MVCサイトに行き、厳密に型指定されたHtmlHelpersを使用してビューを作成するための基礎を学びます。 –

+0

@StephenMueckeそれは私が名前のid instadとしてそれを置いた私のエラーだった!どうもありがとう! – unscope

答えて

0

あなたは本当にdefensをコーディングする必要があります瞬時にそれだけではなく、 "幸せな道"。

S.Akbari @いくつかの意味のある例外

public ActionResult _BookTime(BookTime bt) 
     { 


      if(null != bt) 
      { 
       if(null!=Request.Form["Month"]) 
       { 
        bt.Month = Request.Form["Month"].ToString(); 
       } 
       else 
       { 
        throw new NullReferenceException("Month was null"); 
       }     
       if(null!=Request.Form["Date"]) 
       { 
        /* if bt.Date is a date..what are you doing to make sure the form value is a date?? */ 
        bt.Date = Request.Form["Date"].ToString(); 
       } 
       else 
       { 
        throw new NullReferenceException("Date was null"); 
       }    
      } 
      else 
      { 
       throw new NullReferenceException("bt was null"); 
      } 

      if(null!=db) 
      { 
      db.BookTimes.Add(bt); 
      db.SaveChanges(); 
      } 
      else 
      { 
       throw new NullReferenceException("Db was null"); 
      } 
      return Redirect("Index"); 
     } 
+0

あなたと私のコードに大きな相違があるとは思わないが、あなたはabit検証をしていると思う。そして私が言っているように、私は価値を持っているので、それはゼロではいけません。 – unscope

+0

@unscope、あなたが期待していないことが起こっています。期待どおりにすべてが機能していれば、エラーは発生しません。だから、グラナダコーダは、それは仮定するのが最善であると言っています。あなたが仮定を検証するなら、あなたはあまり苦労しません。また、完全なエラーメッセージや問題の詳細の表示がないので、特定の問題が何であるかを推測する必要があります。 – user34660

+0

@ user34660問題は、私は名前のid instadを持っていたことでした! – unscope