2017-08-15 12 views
0

私は複数のビューを持つコントローラを持っています。各ビューはactionTypeというパラメータを返します。このパラメータでは、すべてのビューが異なる列挙型(たとえば、ElectricEnum、PaperlessEnum、DigitalEnum)を返します。私のコントローラのアクションでは、actionTypeという名前の型Enumを受け取るように設定しています。デフォルトはnullに設定されています。しかし、私はデータでいっぱいにparamを取得するのに苦労している、それはいつもnullを返します。ここASP.NETはビューから同じコントローラアクションに異なるenum型を返します

ビューからコードおよびメソッドヘッダの一例である...

閲覧:

@using (Html.BeginForm("DownloadCSVReport", "Public", FormMethod.Post, new { target = "_blank" })) 
     { 
      @Html.Hidden("fromDate", Model.StatsByDate.Parameters.FromDate) 
      @Html.Hidden("toDate", Model.StatsByDate.Parameters.ToDate) 
      @Html.Hidden("serviceType", ServiceTypeEnum.Paperless) 
      @Html.Hidden("actionType", Model.StatsByDate.Parameters.ActionType) 

      <input type="submit" class="btn btn-primary" name="download" value="Download" formmethod="post" /> 
     } 

コントローラー:この図で

public ActionResult DownloadCSVReport(DateTime fromDate, DateTime toDate, ServiceTypeEnum serviceType, Enum actionType = null) 
    { 
     string returnValue = _dashboardClient.Call(svc => svc.GetCommaSeparatedList(fromDate, toDate, serviceType, actionType)); 

     Response.ContentType = "application/ms-excel"; 
     Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.csv", "ReportDownload")); 
     Response.AppendCookie(new HttpCookie("DownloadToken", System.DateTime.Now.ToShortTimeString())); // For loader icon 

     return Content(returnValue, "application/vnd.ms-excel"); 
    } 

、ACTIONTYPEの値ElectronicEnumですが、このDownloadCSVReportアクションと呼ばれる他のビューでは、別の種類の列挙型です。

これをこのように解決することは可能ですか?異なるタイプの列挙型を1つの宛先に渡してその値を利用することはできますか?

答えて

0

モデルバインディングはモデルプロパティを探します。だからあなたのモデルの一部ではないものは失われます。 ActionTypeをモデルに追加すると、モデルのプロパティとしてコントローラに追加されます。

関連する問題