我有一个数据库中的对象,在我的应用程序的很多地方使用。是否有可能使一个非ActionResult方法返回一个ActionResult ...或最佳/最好的解决方法?
实际的精确对象构建起来有点复杂,特别是在开发过程中,我已经多次改变了它。出于这个原因,我从Controller中提取了方法,并构建了一个具有对象返回类型的方法。
但是,这个对象可能不存在,如果没有,我的代码会创建它并返回它。
例如:
public ActionResult Index()
{
var model = GetTheObject();
return View(model);
}
public MyComplicatedObject GetTheObject()
{
MyComplicatedObject passback = ...database query....
if(passback==null)
create the object here....
return passback;
}
不过,我不再想创建一个默认的对象。如果它不存在,我希望用户被发送到一个视图来创建一个新的。
我不知道是不是因为我在接近凌晨4点的时候编码,或者如果我不是那么好,但是这样做的一个简单方法就是逃避我。
我知道下面将无法正常工作,但理想的,这是我想要的东西:
public MyComplicatedObject GetTheObject()
{
MyComplicatedObject passback = ...database query....
if(passback==null)
return View("CreateObject");
return passback;
}
很明显,虽然,这是不行的。
我能想到的最佳解决方案是基本上返回null或异常,然后在ActionResult上有if(passback==null)
& return View("CreateObject");
(如果为null)。
但是,正如我想在几个地方重复这一点,更有意义的是能够在一行中调用GetTheObject()
而不是其他任何行。
有什么办法可以达到这个目的吗?
+1:深夜编码总是当我得到最多的工作要做,但不一定是,当我得到的最思维来完成。 。 。 – surfasb