2011-07-27 18 views
2

私は、StudentIDとStudentNameの両方を主キーとして設定したStudentデータモデル(Entity Framework)を持っています。 StudentIDはInt型で、StudentNameはString型です。null参照例外エラー

私は強く型付けされたビューを作成し、しかし、私はそれを実行したときに、私は次のエラーを取得する:ここで

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object. 
Source Error: 


Line 10:   <tr> 
Line 11:    <td> 
Line 12:     <%= Html.Encode(item.StudentID) %>** 
Line 13:    </td> 
Line 14:    <td> 

は私のコントローラのアクションである:ここで

public ActionResult Index() 
    { 

     ViewData.Model = student.StudentTable; 
     return View(); 
    } 

ビューです:

<%@ Page 
    Language="C#" 
    Inherits="System.Web.Mvc.ViewPage<IEnumerable<Student.Models.StudentTable>>" %> 

<html> 
<head runat="server"> 
</head> 
<body> 
    <table> 

    <% foreach (var item in Model) { %> 

     <tr> 
      <td> 
       <%= Html.Encode(item.StudentID) %> 
      </td> 
      <td> 
       <%= Html.Encode(item.StudentName) %> 
      </td> 
     </tr> 

    <% } %> 

    </table> 
</body> 
</html> 
+1

コントローラアクションメソッドのコードを表示できますか? – brodie

+1

@brodieはい私はそれを上に加えました – user793468

+0

あなたはあなたの意見を見せてくれますか? – frennky

答えて

1

にビューのコードを変更する必要があります。学生表は、レコードごとに単一のStudentIDを持っている場合は、単に私はそれはあなたがwouldnヌルであれば項目は、nullである疑いmodel.StudentID

コントローラ

public ActionResult Index() 
{  
    var model = student.StudentTable; 
    return View(model); 
} 

のaspx

<% foreach (var item in Model) { %> 

    <tr> 
     <td> 
      <%= Html.Encode(item.StudentID) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.StudentName) %> 
     </td> 
    </tr> 

<% } %> 
+0

私はまだ同じエラーが発生し、私のコントローラとビューを追加しました – user793468

+0

'ViewData.Model = student.StudentTable;あなたのレコードの中で 'StudentID'が' null'であるかどうかをチェックしてください。また、ViewDataを使用するのではなく、ビューにモデルを渡すことをお勧めします。 'return View(model);' –

+0

はい、私がIDキーとして設定したStudentIDのヌル値はいくつかあります。どのように私はそれを克服するのですか? <%= Html.Encode(model.StudentID)%> StudentTable内のすべての生徒をどのように取得すればよいでしょうか?forループは必要ありませんか? – user793468

0

これがl例外が発生しているので、item変数はnullにする必要があります。どのようにモデル化されているかを詳しく調べる必要があります。モデルがnullの場合、コントローラのアクションにデバッガを投げて、それが動作しない理由を理解できるはずです。

+0

はい、それは行です。それは私がパラメータを渡す他のアクションのために働きます – user793468

0

は、いくつかのことだろう...

あなたはActionMethodから有効なビューのデータを渡していますか? ビューに@modelを定義しましたか? student.StudentTableを想定し

は私の推測では、itemnullであるということです、StudentIDプロパティを持つ単一のオブジェクトは、あなたが任意の追加情報がないModel.StudentID

+0

はい私は、私のコントローラのアクションを上記に追加しました – user793468

1

を渡す必要がありますループの中に入る。ブレークポイントを設定して項目を調べると、それはおそらくあなたが考えるものではありません。