将附加值传递给Controller方法 - Razor / MVC 5

时间:2014-07-16 13:22:43

标签: javascript asp.net-mvc razor asp.net-mvc-5

您好我在弄清楚如何将额外的值传递给我的Controller的删除方法时遇到了一些麻烦。

我有一个带有删除按钮的表单(自动生成的MVC)。

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    <div class="form-actions no-color">
        <input type="submit" value="Delete" class="btn btn-sm btn-danger" />
        <button onclick="location.href='@Url.Action("Index", "Admin")';return false;" class="btn btn-sm btn-primary" style="font-size:10px">Admin</button>
    </div>
}

但我想发送一个额外的值,这个值将是getCookie("username");

的结果

我尝试过另一个输入并调用它。

<input type="text" name="userid" value="getCookie('username')"  />

问题是这总是显示&#34; null&#34;在我的Controller方法中。

方法是

    // GET: /Admin/Delete/5
    public ActionResult Delete(int? id, string userid)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        User user = db.Users.Find(id);
        if (user == null)
        {
            return HttpNotFound();
        }
        return View(user);
    }

// POST: /Admin/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id, string userid)
{
    User user = db.Users.Find(id);
    db.Users.Remove(user);
    db.SaveChanges();
    var time = new DateTime();
    string text = time + ": User " + user.name + " was deleted.";
    System.IO.File.AppendAllText(pathway, text + Environment.NewLine);
    return RedirectToAction("Index");
}

我想要的是将getCookie('username');的值传递给方法userID

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

你想要做的是让getcookie()设置userId的值(使用jQuery或其他),而不是返回它。您需要在页面加载时调用此方法。这会将值放在DOM /表单中,因此它会发布到您的控制器操作。

那就是说,您是否只能从Request对象中访问动作中的cookie?