簡體   English   中英

在ASP.NET MVC 4中傳遞用戶ID

[英]Passing an user ID in ASP.NET MVC 4

我的用戶類有一個ICollection of Projects。 現在,我使用Action Link將用戶ID傳遞到Projects控制器中的create方法

@Html.ActionLink("Post a project", "Create", "Project", new{id = @Model.UserId}, new{@class="btn btn-success"})

我的問題是如何捕獲它並將項目與用戶相關聯。 這是我的GET和POST方法的控制器代碼。

  public ActionResult Create(int id)
            {
                ViewBag.ProjectId = new SelectList(db.ProjectDetails, "ProjectDetailId", "TargetAudience");

                ViewBag.ProjectTypeId = new SelectList(db.ProjectTypes, "ProjectTypeId", "ProjectTypeName");
                ViewBag.UserId = id;
                return View();
            }

 // POST: /Project/Create





 [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create(Project project)
    {
        if (ModelState.IsValid)
        {
            db.Projects.Add(project);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        ViewBag.ProjectId = new SelectList(db.ProjectDetails, "ProjectDetailId", "TargetAudience", project.ProjectId);

        ViewBag.ProjectTypeId = new SelectList(db.ProjectTypes, "ProjectTypeId", "ProjectTypeName", project.ProjectTypeId);

        ViewBag.UserId = new SelectList(db.Users, "UserId", "UserName", project.UserId);
        return View(project);
    }

僅在控制器代碼上,在您引用鏈接的操作上

 [HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(string id)
{
    if (ModelState.IsValid)
    {
        db.Projects.Add(project);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    ViewBag.ProjectId = new SelectList(db.ProjectDetails, "ProjectDetailId", "TargetAudience", project.ProjectId);

    ViewBag.ProjectTypeId = new SelectList(db.ProjectTypes, "ProjectTypeId", "ProjectTypeName", project.ProjectTypeId);

    ViewBag.UserId = new SelectList(db.Users, "UserId", "UserName", project.UserId);
    return View(project);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM