我有两个独立的类来模拟我的表。首先,当创建新用户时,用户在证书表中没有记录。因此,在证书视图中,我添加了一个按钮,为这个新用户添加证书详细信息。 这是我的用户视图代码:我省略了分页/搜索和过滤代码,使其变得简单
public ActionResult Index()
var recipients = from s in db.User
select s;
return View(recipients.ToList());
这是显示相关数据的详细信息视图:
public ViewResult Details(int id)
{
var certificateDetails = db.Certificate.Where(p => p.ID == id);
return View(certificateDetails);
}
添加新用户意味着还要添加新证书详细信息。我希望当用户单击特定用户的详细信息时,如果这些详细信息将被重定向到同时设置了User.ID和CertificateID的创建证书视图。实际上CertificateID是AI,但User的ID是外键。 我本来会使用Fluent API,但它不是很好,所以必须在代码中处理这个看似很小的挑战。
答案 0 :(得分:1)
如果我正确理解您的问题,您需要它以便在查看Details()时,如果证书详细信息不存在,那么重定向到页面以创建它们吗?
只检查实体是否存在。如果没有,则返回RedirectToAction()并传递路径数据集合中所需的任何数据。
public ViewResult Details(int id)
{
var certificateDetails = db.Certificate.FirstOrDefault(p => p.ID == id);
if (certificateDetails == null)
return RedirectToAction("Create", "Certificate", new { userId = id });
return View(certificateDetails);
}
您还需要使用Create()操作创建证书控制器。