在asp.net mvc中组合模型

时间:2013-09-30 18:23:32

标签: asp.net-mvc model

我将表格合并到Result。没有问题。

public ActionResult Index()
{
  var Result = new Modeller
  {
    KISALTMALAR = context.KISALTMALAR.ToList(),
    FirmaListesiGetir = context.SP_FIRMA_LISTESI_GETIR().ToList(),
  };
  return View(Result );
}

但是,当使用多个动作时,我每次都必须编写上面的代码。

例如:

public ActionResult Customer()
{
  var Result = new Modeller
  {
    KISALTMALAR = context.KISALTMALAR.ToList(),
    FirmaListesiGetir = context.SP_FIRMA_LISTESI_GETIR().ToList(),
  };
  return View(Result );
}

public ActionResult Product()
{
  var Result = new Modeller
  {
    KISALTMALAR = context.KISALTMALAR.ToList(),
    FirmaListesiGetir = context.SP_FIRMA_LISTESI_GETIR().ToList(),
  };
return View(Result );
}

我必须在每个动作结果中合并我的表格。

我如何写只有一次使用我的Result 到处

2 个答案:

答案 0 :(得分:0)

一种选择是仅引用共享类/服务。例如:

public class YourService
{
    public static Modeller GetCombinedTables()
    {
         return new Modeller
                    {
                        KISALTMALAR = context.KISALTMALAR.ToList(),
                        FirmaListesiGetir = context.SP_FIRMA_LISTESI_GETIR().ToList()
                    };
    }
}

然后,在您的操作中,您可以调用该方法:

public ActionResult Customer()
{
    var Result = YourService.GetCombinedTables();
    return View(Result);
}

您还可以在控制器级别创建Result变量,这样您就不必为每个操作分配它。

答案 1 :(得分:0)

您可以执行以下操作。我总是使用这种方法:

public Modeller GetResult()
{
   var result = new Modeller
  {
    KISALTMALAR = context.KISALTMALAR.ToList(),
    FirmaListesiGetir = context.SP_FIRMA_LISTESI_GETIR().ToList(),
  };

  return result;
}


public ActionResult Customer()
{
  var Result = GetResult();
  return View(Result);
}

public ActionResult Product()
{
  var Result = GetResult();
  return View(Result);

}