我有一个来自数据库的对象,该对象在我的应用程序的很多地方都使用过。
实际的精确对象构建起来有点复杂,尤其是在开发过程中,我已经更改了几次。出于这个原因,我将方法从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)
& (如果为 null)。return View("CreateObject");
但是,由于我想在几个地方重复这一点,因此能够只GetTheObject()
从 ActionResult 中获取一行/调用而不是其他内容更有意义。
有什么办法可以做到这一点?