c# - 同时访问2条记录?
问题描述
我想知道是否有办法在我的编辑视图中访问模型表的 2 行。由于我只想在视图中编辑一条记录,因此无法在 GET 编辑控制器方法中加载包含 2 种方法的列表。有什么方法可以让我在视图中查询下一条记录?
我的控制器方法
// GET: Record/Edit/5
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Record record = db.Records.Find(id);
if (record == null)
{
return HttpNotFound();
}
return View(record);
}
// POST: Record/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "RecordID,BeforeDate,AfterDate,ShiftIDBefore,ShiftIDAfter,EmpAID,EmpBID,Reason,Self_interchange,Status")] Record record, string button)
{
//Codes for modifying the record
}
我的观点
@model Interchangesys.Models.Record
@{
ViewBag.Title = "Edit";
}
<h2>Process interchange record</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.RecordID)
<dt>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" name="button" value="Accept" class="btn btn-success btn-lg" style="width:200px;height:50px;font-size: 25px;" />
<input type="submit" name="button" value="Reject" class="btn btn-danger btn-lg" style="width:200px;height:50px;font-size: 25px;" />
</div>
</div>
</dt>
<!--rest of the codes that shows the content of record with the same id and content of record with the id +1-->
}
提前致谢。
解决方案
好吧,如果我理解正确,您只想在视图中显示有关两条记录的信息。
您可以通过 ViewBag 传递下一条记录以在您的视图中可用,如下所示:
Record record = db.Records.Find(id);
Record next = db.Records.Find(id + 1);
ViewBag.Next = next;
return(record);
然后在您看来,您可以像这样访问它:
@{
Record next = (Record)ViewBag.Next;
}
最后,要在视图中使用它,您可以执行以下操作:
@Html.Hidden("NextRecordID", next.RecordID) // You can't use @Html.HiddenFor
或者,您可以通过 ViewBag 传递两条记录,如下所示:
Record record = db.Records.Find(id);
Record next = db.Records.Find(id + 1);
ViewBag.Record = record
ViewBag.Next = next;
return(); // There will be no model for your view.
然后在视图中为字段添加前缀,如下所示:
@{
Record record = (Record)ViewBag.Record;
Record next = (Record)ViewBag.Next;
}
@Html.Hidden("record.RecordID", record.RecordID)
@Html.Hidden("next.RecordID", next.RecordID)
因此,您可以像这样在 Edit 函数中获得它们:
public ActionResult Edit([Bind(Prefix = "record", Include = "...")] Record record, [Bind(Prefix = "next", Include = "...")] Record next, string button)
推荐阅读
- clojure - Clojure:将列表/向量的每个项目增加其第一个元素
- python - 如何将 joblib 转储保存到另一个文件夹?
- google-sheets - 当我将 Google 工作表另存为 xlsx 时,使用 =image() 看不到工作表中的图像
- django - ModuleNotFoundError:Elastic Beanstalk 上没有名为“django”的模块
- c# - 列表继承更改破坏了向后兼容性
- c++ - 在指定的自定义类迭代器位置插入节点
- python - 如何将循环添加到用户名和密码登录(Python)?
- python - 如何在 Python 中打印带引号的字符串和变量?
- asp.net - ASP.Net HyperLinkField、弹出窗口和 Chrome - 如何
- logstash - 为什么我的代码在 grok 调试器中不起作用