我想在我的其他控制器动作中通过一个控制器动作检索到的模型,但我不确定如何进行此操作,并希望有人在这里可以帮助我...
我有两种方法:
//Method 1
public ActionResult VehicleModel(int id)
{
//I would like to have access to this *model* in my method2
var model = myService.VehicleModel(id);
myService.Close();
return Json(new { model = model }, JsonRequestBehavior.AllowGet);
}
/
//Method2
public ActionResult Vehicle(string id, string vehicle)
{
//this is the method where i need the *model* from method1 to be accessed
var _cat = _catalogue.Data.FirstOrDefault(x => x.vehicleId == id && x.Vehicle == vehicle );
ViewData["id"] = id;
return PartialView("_intercoolerVehicle", _cat);
}
所以基本上在上面的上下文中..我希望method2能够访问method1中的模型。是否有可能做到这一点?如果是这样,我会这样做吗?
谢谢
答案 0 :(得分:1)
我现在已经解决了你的问题,但严格来说,你正在错误地接近你的控制器行为。您只需在任何您想要的任何操作中调用您的业务域服务即可。如果您的目的是拥有一个集中的公共函数,该函数应该执行调用业务域服务以获取模型数据的任务,那么最好使用不作为控制器操作公开的私有函数。然后,您只需从您想要的任何控制器操作中调用该私有函数。希望这可以帮助!您需要将标记 替换为业务域服务返回的对象类型,因为您在问题中发布的代码段中并不明显。
<Type returned by myService.VehicleModel function> globalModel = null;
public ActionResult VehicleModel(int id)
{
globalModel = myService.VehicleModel(id);
myService.Close();
return Json(new { model = 3 }, JsonRequestBehavior.AllowGet);
}
public ActionResult Vehicle(string id, string vehicle)
{
//this is the method where i need the *model* from method1 to be accessed
VehicleModel(id);
_catalogue = globalModel;
var _cat = _catalogue.Data.FirstOrDefault(x => x.vehicleId == id && x.Vehicle == vehicle );
ViewData["id"] = id;
return PartialView("_intercoolerVehicle", _cat);
}