【发布时间】:2011-10-09 02:51:27
【问题描述】:
我有一个来自数据库的对象,该对象在我的应用程序的很多地方都使用。
实际的精确对象构建起来有点复杂,尤其是在开发过程中,我已经更改了好几次。出于这个原因,我将方法从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)。
但是,由于我想在几个地方重复这一点,因此能够在 ActionResult 的一行/调用中仅包含 GetTheObject() 而没有其他内容更有意义。
有什么办法可以做到吗?
【问题讨论】:
-
+1:深夜编码总是我完成最多工作的时候,但不一定是我完成最多思考的时候。 . .
标签: c# asp.net-mvc-3 methods actionresult