0
的方法回报我只是想知道,以验证我的视图模型的方式。又该服务层
,用户可以根据自己的只有一支球队,所以我必须以某种方式检查,如果他还没有得到一个。
public ActionResult AddTeam(TeamCreatingViewModel teamToAdd)
{
if (ModelState.IsValid)
{
//check if the user has got a team
if (!TeamService.checkIfUserHasCreatedTeam(User.Identity.GetUserId()))
{
//if not then allow him to create one
if (!TeamService.addTeam(teamToAdd, User.Identity.GetUserId()))
{
ViewBag.Info = "Success";
return View("Info");
}
else
{
ViewBag.Info = "It was impossible to create a new team";
return View("Error");
}
}
else
{
ViewBag.info = "You have a team!";
return View("Error");
}
}
else
{
return View("TeamCreatingForm", teamToAdd);
}
}
或者下面的解决方案会更好吗?
public ActionResult AddTeam(TeamCreatingViewModel teamToAdd)
{
if (ModelState.IsValid)
{
if (!TeamService.addTeam(teamToAdd, User.Identity.GetUserId())) //<--- now it is checking and adding (if allowed)
{
ViewBag.Info = "Success";
return View("Info");
}
else
{
ViewBag.Info = "It was impossible to create a new team";
return View("Error");
}
}
else
{
return View("TeamCreatingForm", teamToAdd);
}
}
我如何报告(从服务层)如果发生错误,(什么样的)?在第二种情况下,用户不知道什么是错误的。 而在第一种情况下,我必须得到一个实体对象2次,这似乎是无用的。
确定。谢谢你的回答,但这是一个好习惯吗? – pred
是的,如果你的服务代码从两处或两处以上(网络+ API为例)一起使用。我认为它更优雅,然后抛出异常并在以后捕获它们。 – Nigrimmist