0

我有两个独立的类来模拟我的表。首先,当创建新用户时,该用户在证书表中没有记录。因此,在证书视图中,我添加了一个按钮来为这个新用户添加证书详细信息。这是我的用户视图代码:我省略了分页/搜索和过滤代码以使其简单

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,但也不擅长使用它,因此必须在代码中处理这个看似很小的挑战。

4

1 回答 1

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() 操作创建证书控制器。

于 2012-11-28T07:53:44.487 回答