MVC4 - ActionLink 到 Create() 或者,如果已经存在,Edit(Id)
MVC4 - ActionLink to either Create() or, if already existing, Edit(Id)
我想要一个说 "set user default" 的操作 link。数据库可能尚未为单击 link 的用户存储 UserDetails。如果是这种情况,我想在用户可以保存新对象时将用户定向到创建视图。
如果用户的 UserDetails 已经存在,我想将用户定向到他们的 Edit(id) 页面并从数据库加载他们现有的 UserDetails。
基本上我需要一个基于某些信息指向不同视图的 ActionLink。
在 MVC 中 preferred/standard 实现此目的的方法是什么?
现有记录
@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();
}
您可以通过 link 到 SetUserDefault 操作方法(例如
)来实现
@Html.ActionLink("set user default", "SetUserDefault", "User")
在操作方法中检测用户类型,然后将用户重定向到正确的操作
public ActionResult SetUserDefault()
{
User currentUser = Get(User.Identity.Name);
if (currentUser != null)
return RedirectToAction("Edit", new { id = currentUser.Id });
else
return RedirectToAction("Create");
}
我想要一个说 "set user default" 的操作 link。数据库可能尚未为单击 link 的用户存储 UserDetails。如果是这种情况,我想在用户可以保存新对象时将用户定向到创建视图。
如果用户的 UserDetails 已经存在,我想将用户定向到他们的 Edit(id) 页面并从数据库加载他们现有的 UserDetails。
基本上我需要一个基于某些信息指向不同视图的 ActionLink。
在 MVC 中 preferred/standard 实现此目的的方法是什么?
现有记录
@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();
}
您可以通过 link 到 SetUserDefault 操作方法(例如
)来实现@Html.ActionLink("set user default", "SetUserDefault", "User")
在操作方法中检测用户类型,然后将用户重定向到正确的操作
public ActionResult SetUserDefault()
{
User currentUser = Get(User.Identity.Name);
if (currentUser != null)
return RedirectToAction("Edit", new { id = currentUser.Id });
else
return RedirectToAction("Create");
}