2017-02-01 17 views
0

部分ビューを使用しようとしていますが、完全に失われています。もともと、私は部分的なビューに動的なデータを渡そうとしていましたが、GoogleブラウザのF12キーを押すと403の表示が禁止されました。それはデータヌルビューバッグと部分図

 <table cellpadding="1" border="1"> 
      <tr> 
      <th> 
       FIELD LBL1 
      </th>   
      </tr> 

     @foreach (MvcProgram.Models.LIST_FULL item in @ViewBag.ListFull) 
     { 
      <tr> 
       <td> 
        @item.FIELD1_DATA 
       </td> 
      </tr> 
    } 

    </table> 

それは禁じられて言ったように、MVCは、ビューバッグを使用して動的データをプッシュすることができないことを私に示して、エラーをロードできるようになる私は1つのフィールドの考え方に減少している

部分図。だから私は失敗のすべての種類の回避策を試してみたので、そのアイデアを廃止しています。今私はちょうどビューバッグの静的なデータで部分的なビューを作成したいと思うが、私は、ページがすぐに失敗する作成ビュー上にあるときにリストを作る価値がないと思います。

Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

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

そして、それはそうMVCのビューを作成する上でのすべての部分のビューを使用することができます

 @foreach (ComputerProgram.Models.LIST_FULL item in @ViewBag.ListFull) 

私の部分図のforeachループに停止します?このエラーで私のリストは、ドロップダウンリストのIDを使用して作成されますが、フォームがユーザーによって操作されるまで、作成ビューでは選択されません。

私の質問は、ビューを作成する際に部分的なビューをレンダリングすることもできますが、いくつかのmvcの制限のためにwebformsでしかできないものです。

VIEW

 <div class="col-sm-6"> 

       <div class="form-horizontal" style="display:none" id="PV_IssueList"> 

       @Html.Partial("_VehIssuesListPartial") 

       </div> 
      </div> 

のCREATE私はこのMVCは部分ビューを表示するビューを作成得ることができるように見える唯一の方法は、ビューバッグ用リストを作成し、既知の記録を移入することですそれはレンダリングする。これは正しいことではありません:画面上のデータが既に存在する画面上でしか使用できない部分的なビューですか?

コントローラのコードの両方を取得し、ポストコードと言う1:

// GET: VRS_REQUEST/Create********************************** 
    public ActionResult Create() 
    { 
      some code stuff 

     ViewBag.VehIssuesList = GetList(808); //Force it to get something so that the page loads 

     return View(model); 

    } 

郵便コード作成:

// POST: VRS_REQUEST/Create 
     [HttpPost] 
     [ValidateAntiForgeryToken] 


     public ActionResult Create(int RES_ID, FormCollection Collection,  [Bind(Include = Some Fields.... 

     { 
      //ViewBag.ListFull = GetList(RES_ID); 

      //UpdateList(int.Parse(Collection["RES_ID"])); // Was part of the attempt at dynamic data for partial view that shows forbidding 


      ... CODE THAT DOES STUFF 

       return RedirectToAction("Index"); 
      } 
      return View(model); 
     } 

方法現在のコードの作品は、それは無視し、ドロップダウンリストを、ちょうどハードコーディングされた値を取り込みます。なぜ私はビューバッグを使用していると言うでしょう、それは私が知っているものです。私はモデルを全く理解していません。画面が空であるため作成ビューではできない場合は、私の仕事を冷やしてください - 私はそれを知る必要があります。

ここで私のコードは、私がMVCが動的データでこれをやろうとする試みを中止したためです。

これをcreate controller get関数から削除すると、ページはロードされず、NULLエラーが発生します。

 ViewBag.VehIssuesList = GetList(808); 

私は再び作成ビューでこれをやろうとしている私のためにこれで、MVCはそれを扱うことができない...ロードするためにページの値を強制する必要がありますか?

答えて

0

_WidgetListPartial @ifステートメントはnullの状況を処理します。部分ビューのデータがnullに戻った場合。

@if (@ViewBag.AList != null) 
    { 
    <table cellpadding="1" border="1"> 
    <tr> 
     <th> 
      Widget Name 
     </th> 
    </tr> 

@foreach (MvcProgramX.Models.LIST_FULL item in @ViewBag.AList) 
    { 
    <tr> 
     <td> 
      @item.WidgetName 
     </td>   
    </tr> 
    } 

    </table> 
    } 
関連する問題