如何将查询字符串中的参数从视图传递到控制器

本文关键字:视图 控制器 参数 查询 字符串 | 更新日期: 2023-09-27 18:23:36

Create视图中,我有以下链接:http://localhost:17697/Reports/Create?personId=2

在一个视图中,我有一个表单:

@using (Html.BeginForm()) {
    @Html.AntiForgeryToken()
    <div class="form-horizontal">
        <hr />
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        @Html.HiddenFor(model => model.Id)
        <div class="form-group">
            @Html.LabelFor(model => model.Text, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Text, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Text, "", new { @class = "text-danger" })
            </div>
        </div>
        <div class="form-group">
            <div class="col-md-offset-0 col-md-10">
                <input type="submit" value="Save" class="btn btn-success" style="width: 200px; font-weight: bold;" />
            </div>
        </div>
    </div>

当我单击Save按钮时,我提交表单并调用POST Create操作方法。我还将在视图内的链接到POST Create方法的查询字符串中从?personId=2传递这个2

 [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "Id,Text")] Report report) {
            // I WANT TO GET personId=2 from query string here
            if (ModelState.IsValid) {
                db.Reports.Add(report);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(report);
        }

在表格中添加这个是正确的方法吗?@Html.Hidden( @Html.Encode("personId"))

如何将查询字符串中的参数从视图传递到控制器

将其作为参数添加。。。

public ActionResult Create([Bind(Include = "Id,Text")] Report report, int personId){
}