アプリケーションの多くの場所で使用されているデータベースのオブジェクトがあります。
実際の正確なオブジェクトを構築するのは少し複雑で、特に開発中に何度か変更しました。このため、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 からの 1 行/呼び出しのみで実行できる方が理にかなっています。
これを達成する方法はありますか?