[C#] MVC4パーシャルビューエラー "オブジェクト参照がオブジェクトのインスタンスに設定されていません。"


Answers

オブジェクトのインスタンスに設定されていないオブジェクト参照は、常に私の初期化されていないリストでした。 設定する前に推奨イベントを初期化してみてください。 何かのようなもの

List<Events> recommendedevents = new List<Events>();

イベントをタイプが何であれ置き換える。

Html.Partialの最初のパラメータはメソッド呼び出しではない部分的な名前です。 モデルをビューに渡してビューモデルを考え、それを部分モデルに渡す必要があります

@Html.Partial("_RecommendedEvents", Model.Events)

または、ajax呼び出しでパーシャルをロードします。 ここで私の答えを見てください。AJAXを使って部分的なフォーム要素をレンダリングする方法

Question

まずはMVCの初心者です。 特定のブール値フィールドが真である場合、データベースからのデータを部分ビューでイベント表に表示するにはどうすればよいでしょうか。

これは私の部分的な見解です:

@model IEnumerable<TheBigEvent.Models.RecommendedEvents>
<table>
 <tr>

  <td>  
     @Html.DisplayNameFor(model => model.Event_Name)
      </td>
      <td>
      @Html.DisplayNameFor(model => model.Event_Date)

   </td>
  </tr>

 <tr>   

      @foreach (var item in Model) {

          <td>  

    @Html.DisplayFor(modelItem => item.Event_Name)
</td>
     <td>
    @Html.DisplayFor(modelItem => item.Event_Date)
         </td>
     }

 </tr>                          
   </table>

これは私のコントローラです

public ActionResult _RecommendedEvents()

    {


        var recommendedevents = from Events in db.Database1
                                select Events;

        recommendedevents = recommendedevents.Where(s => s.Recommended.Equals(true));

        return PartialView("_RecommendEvents", recommendedevents);


    }

そして、パーシャルビューを表示するためのコード

 @Html.Partial("_RecommmndedEvents")

これは私が受け取っているエラーです

[編集]

 public ActionResult _RecommendedEvents(RecommendedEvents model)

    {

        model = new RecommendedEvents();


        var recommendedevents = from Events in db.Database1
                                select Events;


        recommendedevents = recommendedevents.Where(s => s.Recommended.Equals(true));








        return View(model);


    }



エラーはあなたのモデルがnullであることを意味し、 PartialView()Ajax使用しているときに使用されます。そうでなければ、あなたのコードを以下のように書くことができます:

return View("_RecommendEvents", recommendedevents);