У меня есть объект из базы данных, который используется во многих местах моего приложения.
Фактически точный объект немного сложен, и, особенно во время разработки, я несколько раз менял его. По этой причине я извлек метод из контроллера и создал метод, который имеет тип возвращаемого объекта.
Однако возможно, что этот объект не существует, и если бы его не было, мой код создал бы его и вернул бы его.
Например:
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;
}
Очевидно, что это не сработает.
Лучшее решение, которое я могу придумать, это в основном вернуть либо ноль, либо исключение, а затем иметь if(passback==null)
& return View("CreateObject");
(в случае нуля) в ActionResult.
Однако, поскольку я хочу повторить это в нескольких местах, имеет смысл иметь возможность иметь GetTheObject()
в одной строке / вызове из ActionResult и ничего больше.
Есть ли способ добиться этого?