2

その日の生産データのリストを表示するasp.net MVC4 Webプロジェクトがあります。ユーザーが情報を表示する日付を選択できる日時ピッカーを追加しました。

私が抱えている問題は、コントローラー内にあるメソッドからビューに情報を戻す方法がわからないことです。

日付がコントローラーに返されます。コントローラー内で、その日の本番データのみを選択できるようにする LINQ ステートメントを実行しています。

  [HttpPost]
    public ActionResult GetProductionDateInfo(string dp)
    {
        DateTime SelectedDate = Convert.ToDateTime(dp);
        DateTime SelectedDateDayShiftStart = SelectedDate.AddHours(7);
        DateTime SelectedDateDayShiftEnd = SelectedDate.AddHours(19);

        var ProductionData =

            from n in db.tbl_dppITHr
            where n.ProductionHour >= SelectedDateDayShiftStart
            where n.ProductionHour <= SelectedDateDayShiftEnd
            select n;


        return View();

Var ProductionData をビューに戻して、テーブル内に表示することを検討しています。

4

4 に答える 4

2

ProductionDataビューに直接戻ることができます。

 return View(productionData)

そして、あなたのビューであなたが持つことができます@model IEnumerable<Type>

ただし、強く型付けViewModelされた を作成して ProductionData を保持し、次を返すことをお勧めします。

 var model = new ProductionDataViewModel();
 model.Load();

 return View(model);

定義modelは次のとおりです。

public class ProductionDataViewModel { 

   public List<ProductionDataType> ProductionData { get; set; }
   public void Load() {
       ProductionData = from n in db.tbl_dppITHr
        where n.ProductionHour >= SelectedDateDayShiftStart
        where n.ProductionHour <= SelectedDateDayShiftEnd
        select n;
   }
}

次に、ビューで強く型付けされた新しい ViewModel を使用します。

 @model ProductionDataViewModel
于 2013-09-23T08:49:33.413 に答える
0

次のようなモデルを使用します。

public class ProductionDataModel
{
    //put your properties in here

    public List<ProductionData> Data { get; set; }
}

次に、あなたの中でそれを作成/返しますActionResult:

var ProductionData =
    from n in db.tbl_dppITHr
    where n.ProductionHour >= SelectedDateDayShiftStart
    where n.ProductionHour <= SelectedDateDayShiftEnd
    select new ProductionData
    {
        //set properties here
    };

var model = new ProductionDataModel
{
    Data = ProductionData
};


return View(model);

次に、ビューでモデルを一番上に設定します。

@model ProductionDataModel
于 2013-09-23T08:49:18.233 に答える
0

変数ProductionDataのタイプは になりますIEnumerbable<tbl_dppITHrRow>

アクションの下部にある次のコードを使用して、コントローラーからモデルを渡すことができます。

return View(ProductionData);

ビューでは、ビューの .cshtml ファイルに次の Razor コードを配置することで、これをモデル タイプにすることができます。

@model IEnumerbable<tbl_dppITHrRow>

次に、ビュー コードでモデルを使用できます。

@foreach(var row in Model) {
    <div>@row.Value</div>
}
于 2013-09-23T08:50:08.840 に答える
0

ここでの問題は、ビューに何も返さないことです。return View();このビューはビューをレンダリングするだけで、データは渡されません。

ProductionDataを取得している場合

戻るreturn View(ProductionData);

その後、ビューで渡された値を使用できます。

于 2013-09-23T08:47:49.470 に答える