我想要一个说明"设置用户默认值"的操作链接。数据库可能没有为点击链接的用户存储UserDetails。如果是这种情况,我想在用户保存新对象时将用户定向到“创建”视图。
如果UserDetails已经存在于用户,我想将用户引导到他们的Edit(id)页面并从数据库加载他们现有的UserDetails。
基本上我需要一个基于某些信息指向不同视图的ActionLink。
MVC的首选/标准方式是什么?
现有记录
@Html.ActionLink("set user default", "Edit", "User")
非现有记录
@Html.ActionLink("set user default", "Create", "User")
这是我的一次尝试,但由于EditOrCreate需要成为一个视图,所以它没有工作 - 理想情况下,这种情况不需要创建另一个视图。
public ActionResult EditOrCreate()
{
User user = Get(User.Identity.Name);
if (user != null)
Edit(user);
else
Create();
}
答案 0 :(得分:1)
您可以通过操作链接到SetUserDefault操作方法(如
)来实现这一点@Html.ActionLink("set user default", "SetUserDefault", "User")
在action方法中检测用户类型,然后将用户重定向到正确的操作
public ActionResult SetUserDefault()
{
User currentUser = Get(User.Identity.Name);
if (currentUser != null)
return RedirectToAction("Edit", new { id = currentUser.Id });
else
return RedirectToAction("Create");
}