2017-10-27 18 views
1

私はちょっと立ち往生しています。私はまだこのすべてのことを学んでいますが、自分のアプリケーションにcsvパーサーを追加する必要がありました。このパーサーは結果を私の警告ページに表示する必要があります。私がしている場合PartialView();名前は現在のコンテキストには存在しません

return PartialView(model, pin, tDate, stat); 

私はピン、tDateとstatが現在のコンテキストに存在しないことを教えてくれます。私はそれらを取る場合、アプリは実行されますが、意図した結果が表示されません。

私はここUserADInfoModel.csに

をピン、tDateおよびSTATを宣言したコントローラです:

public ActionResult _Alerts(UserADInfoModel model, List<string> groups) 
    { 
     DataRowCollection drColl = Core.GetAlerts(model); 
     ViewBag.Alerts = drColl; 

     var path = @"Exchange Migration data 10-25-17.csv"; 
     using (TextFieldParser csvParser = new TextFieldParser(path)) 
     { 
      csvParser.CommentTokens = new string[] { "#" }; 
      csvParser.SetDelimiters(new string[] { "," }); 
      csvParser.HasFieldsEnclosedInQuotes = true; 

      // Skip the row with the column names 
      csvParser.ReadLine(); 

      // Read the lines 
      while (!csvParser.EndOfData) 
      { 
       string[] fields = csvParser.ReadFields(); 
       string pin = fields[0]; 
       string tDate = fields[2]; 
       string stat = fields[6]; 
      } 
     } 

     return PartialView(model, pin, tDate, stat); 
    } 

、ここでは、ビューは

@if (@ViewBag.pin == Model.SAM) 
    { 
     <tr style="background-color : #ff3333; color: #ffffff"> 
      <td style="padding-left :10px; padding-right: 10px;padding-top:2px; padding-bottom: 2px"> 
       <p>Critical</p> 
      </td> 
      <td style="padding-left :10px; padding-right: 10px;padding-top:2px; padding-bottom: 2px"> 
       <p>Exchange Migration</p> 
      </td> 
      <td style="padding-left :10px; padding-right: 10px;padding-top:2px; padding-bottom: 2px"> 
       <p>Caller was set to migrate on (@ViewBag.tDate). The status of the migration is (@ViewBag.stat). Please contact Hypercare</p> 
      </td> 
     </tr> 
    } 

    @foreach (var x in ViewBag.Alerts) 
    { 
     var uClass = (x["Weight"].Contains("Warning")) ? "#ff8c1a, " : (x["Weight"].Contains("Critical")) ? "#ff3333" : ""; 

     <tr @if (x["Weight"].Contains("Warning")) { 
      @MvcHtmlString.Create("style=\"background-color: #ff8c1a\"") 
     } 
     else if(x["Weight"].Contains("Critical")){ 
      @MvcHtmlString.Create("style=\"background-color: #ff3333; color: #ffffff\"") 

     }> 

である私が間違って何をやっていますか? TIA

答えて

0

whileスコープ内にpin,tDateおよびstatと宣言しました。

public ActionResult _Alerts(UserADInfoModel model, List<string> groups) 
{ 
    DataRowCollection drColl = Core.GetAlerts(model); 
    ViewBag.Alerts = drColl; 

    var path = @"Exchange Migration data 10-25-17.csv"; 
    using (TextFieldParser csvParser = new TextFieldParser(path)) 
    { 
     // ... 

     while (!csvParser.EndOfData) 
     { 
      string[] fields = csvParser.ReadFields(); 
      model.pin = fields[0]; 
      model.tDate = fields[2]; 
      model.stat = fields[6]; 
     } 
    } 

    return PartialView(model); 
} 

_Alerts.cshtml:

@model UserADInfoModel 
@if (@Model.pin == Model.SAM) 
// ... 
// ... @Model.tDate ... @Model.stat ... 
+0

がそれを行なったし、今私はPartialView(モデル、ピンを返す取得するには、あなたがデータを渡すためのモデル(推奨)またはViewBagを使用したい場合は

が決めますtDate、stat);メソッドのオーバーロードがありませんPartialViewは4つの引数を取ります – Melaa

+0

ありがとう!少なくとも、まだ情報を表示していないエラーはないので、別の問題がどこかにあるはずです。 – Melaa

+0

'Model.SAM'が割り当てられていない可能性があります。 – aaron

関連する問題