次のエラー メッセージが表示されて困っています。
Object reference not set to an instance of an object.
改行:
Line 16:         </div>
Line 17:         <div class="editor-field">
Line 18:              @Html.DropDownList("KPI.CSF.FYID", Model.Financial_Years)
Line 19:             @Html.ValidationMessageFor(model => model.KPI.CSF.FYID)
Line 20:         </div>
これは、mvc プロジェクトでのフォーム ポスト中に発生します。
作成フォームをロードするときに、次のビューモデルを渡しています。
public class KPICreateFormViewModel
    {
        //Properties
        public KPI KPI { get; set; }
        public SelectList Financial_Years { get; private set; }
        FYRepository fyrepo = new FYRepository();
      public KPICreateFormViewModel(KPI kpi)
        {
            KPI = kpi;
            Financial_Years = new SelectList(fyrepo.GetFys(), "ID", "Financial_Year");
        }
    }
私は会計年度をドロップダウンに使用します。これにより、いくつかの ajax が開始され、投稿に ID 番号が入力される他のいくつかのドロップダウンがカスケードされます。
会計年度のドロップダウンで、コントローラーの http ポスト メソッド中に何もポストしたくなかったので、次のものを返すだけで問題ないと考えました。
[HttpPost]
    public ActionResult Create(KPI kpi)
    {
        try
        {
            kpirepository.Add(kpi);
            kpirepository.Save();
            return RedirectToAction("Details", new { id = kpi.ID });
        }
        catch
        {
            return View();
        }
    }
私のビューがビューモデルに基づいているため、これはすべて起こっていると思いますが、投稿時にこれを返していませんか? カスケードコードを何時間もいじって機能させた後、この問題に取り組むために頭が少し揚げられています..助けてください!
会計年度のドロップダウンを示す私のビューに関連する部分:
@model ES_Business_Intelligence.ViewModels.Admin.KPICreateFormViewModel
@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>KPI</legend>
        <div class="editor-label">
            @Html.LabelFor(model => model.KPI.CSF.FYID)
        </div>
        <div class="editor-field">
             @Html.DropDownList("KPI.CSF.FYID", Model.Financial_Years)
            @Html.ValidationMessageFor(model => model.KPI.CSF.FYID)
        </div>