GET期间坚持房产价值POST ASP NET MVC

时间:2013-06-09 15:05:55

标签: c# asp.net-mvc

我需要获取在Get操作期间存储的属性(UserUniqueId)的值。

public ActionResult Create(int uniqueId = -1)
{
    w = new Work { UserUniqueId = uniqueId };
    //todo: how to pass uniqueId while rendering view. such that must receive it back during post.
    return View(w);
}

查看doest不会填充/更新此值。 我需要访问UserUniqueId才能进行数据库保存操作。

    [HttpPost]
    public ActionResult Create(Work work)
    {
        if (ModelState.IsValid)
        {
            //Set uniqueId, Set UserId
            int userId = WebSecurity.HasUserId ? WebSecurity.CurrentUserId : -1;
            work.UserId = WebSecurity.CurrentUserId;
            //Need previously stored uniqueId here.
            work.UserUniqueId = //How do I obtain this value here.
            db.SaveChanges();

            return RedirectToAction("Index");
        }

        return View(work);
    }

2 个答案:

答案 0 :(得分:0)

您需要在表单中的<input type="hidden" />中包含该值。 (来自模型属性的@Html.Hidden()

然后,您可以在POST操作中将其作为模型的属性(或作为方法的单独参数)。

答案 1 :(得分:0)

在视图中,我假设您@Model设置为工作,然后您可以创建隐藏字段,如

 <%= Html.HiddenFor(m=>m.UserUniqueId) %>