C# 如何在MVC 3中的控制器之间传输数据?
我有两个独立的控制器表,不仅仅是动作方法 我的第一个控制器:C# 如何在MVC 3中的控制器之间传输数据?,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我有两个独立的控制器表,不仅仅是动作方法 我的第一个控制器: namespace TestLokal.Controllers { public class BOUNCEController : Controller { BOUNCEDataDataContext db = new BOUNCEDataDataContext(); // // GET: /BOUNCE/ [Authorize] pub
namespace TestLokal.Controllers
{
public class BOUNCEController : Controller
{
BOUNCEDataDataContext db = new BOUNCEDataDataContext();
//
// GET: /BOUNCE/
[Authorize]
public ActionResult Index()
{
ViewData["Bouncers"] = new SelectList( db.Bouncers.Distinct(), "bouncer_id", "bouncer_name");
return View();
}
}
}
我的第二个控制器:
namespace TestLokal.Controllers
{
public class DopplerController : Controller
{
//
// GET: /Doppler/
[Authorize]
public ActionResult Index()
{
elementmodel dop = new elementmodel();
ViewData["Dopplers"] = new SelectList( dop.BouncerList.Distinct(), "bouncer_id", "bouncer_name");
return View();
}
}
}
public class elementmodel
{
public IEnumerable<Bouncers> BouncerList { get; set; }
}
我想使用此模型将数据从第一个传输到第二个:
我的型号:
namespace TestLokal.Controllers
{
public class DopplerController : Controller
{
//
// GET: /Doppler/
[Authorize]
public ActionResult Index()
{
elementmodel dop = new elementmodel();
ViewData["Dopplers"] = new SelectList( dop.BouncerList.Distinct(), "bouncer_id", "bouncer_name");
return View();
}
}
}
public class elementmodel
{
public IEnumerable<Bouncers> BouncerList { get; set; }
}
公共类元素模型
{
公共IEnumerable BouncerList{get;set;}
}
我怎样才能做到这一点呢?我马上想到两件事
我马上想到两件事
您可以为此使用TempData
请参阅(在操作方法之间传递数据)您可以使用TempData进行此操作
请参阅(在操作方法之间传递数据)首先。。。您确定需要两个具有相同数据的独立控制器吗?依我拙见,每个控制器都应该负责处理自己的模型组。如果您需要在两个控制器中具有相同的数据,那么您是否应该创建一些基类
public class MyBaseController : Controller
{
//shared fields & methods for example datacontext
}
public class DopplerController : MyBaseController
{
}
public class BounceController : MyBaseController
{
}
但如果我错了,你的一个控制器只需要另一个控制器的工作结果,你可以使用Coockies,Session 首先。。。您确定需要两个具有相同数据的独立控制器吗?依我拙见,每个控制器都应该负责处理自己的模型组。如果您需要在两个控制器中具有相同的数据,那么您是否应该创建一些基类
public class MyBaseController : Controller
{
//shared fields & methods for example datacontext
}
public class DopplerController : MyBaseController
{
}
public class BounceController : MyBaseController
{
}
但如果我错了,你的一个控制器只需要另一个控制器的工作结果,你可以使用Coockies,Session 为此,我应该有一个控制器表。但是我在我的项目中有两个单独的控制器表。不,你会有3个控制器。基本控制器(可以标记为抽象控制器)和两个派生控制器。但若你们不能像我说的那个样改变应用程序结构中的任何东西,你们可以在会话中存储一些数据(小于5mb,这是巨大的…)。。。这是丑陋的,但可能:)为了做到这一点,我应该有一个控制器表。但是我在我的项目中有两个单独的控制器表。不,你会有3个控制器。基本控制器(可以标记为抽象控制器)和两个派生控制器。但若你们不能像我说的那个样改变应用程序结构中的任何东西,你们可以在会话中存储一些数据(小于5mb,这是巨大的…)。。。这很难看,但也有可能:)你确定TempData可以在不同的控制器工作表之间发送数据吗?看起来它只在操作方法之间发送数据。不是整个控制器。动作方法是在同一个控制器上还是在不同的控制器上并不重要。TempData只是在后台使用会话状态,但其生存期有限。您确定TempData可以在不同的控制器工作表之间发送数据吗?看起来它只在操作方法之间发送数据。不是整个控制器。动作方法是在同一个控制器上还是在不同的控制器上并不重要。TempData只是在后台使用会话状态,但生命周期有限。到目前为止,json看起来更容易,但会使用不必要的视图和操作损害项目质量。我需要一种直接访问第二个控制器工作表的方法。到目前为止,json看起来更容易,但会使用不必要的视图和操作损害项目质量。我需要一个直接的方式到我的第二个控制器表。