c# - 如何通过作为 List 一部分的元素的交互来获取 Id在 .NET 框架中
问题描述
我有一个由 for 循环显示在页面上的元素列表。我想将所选元素的数据放入 asp.net 视图中。我怎么能意识到这一点?
这是控制器的操作,它返回一个元素列表:
public ActionResult MainContent()
{
SiteContext db = new SiteContext();
db.SaveChanges();
var model = db.Posts.ToList();
return PartialView("MainContent", model);
}
MainContent 的部分视图:
@model IEnumerable<LayersDAL.Entity.Post>
@for (int i = 0; i < Model.Count(); i++)
{
<ul>
<li>
//Here is I'm trying to send element Id of current loop iteration to CurrentPost but something goes wrong :(
<a class="post-ref" href="@Url.Action("CurrentPost", "Notes", new { Model.ToList()[i].PostId })">
<h2>@Html.DisplayFor(modelItem => Model.ToList()[i].Title)</h2>
<p>
</p>
</a>
</li>
</ul>
}
CurrentPost 操作:
public ActionResult CurrentPost(int? id)
{
SiteContext db = new SiteContext();
var post = db.Posts.FirstOrDefault(p => p.PostId == id);
return PartialView(post);
}
CurrentPost 的部分视图:
<div class="modal-post">
<div class="modal-post-divs">
<span class="close">×</span>
</div>
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div>
<label>@Model.Title</label>
</div>
</div>
那么,我能做些什么呢?:)
升级版:
谢谢大家,我解决了这个问题:)
解决方案
如果未找到任何项目,FirstOrDefault() 将返回 null,因此您的模型将为 null。
public ActionResult CurrentPost(int? id)
{
SiteContext db = new SiteContext();
var post = db.Posts.FirstOrDefault(p => p.PostId == id);
return PartialView(post);
}
你可以在你的视图上检查它以避免错误。
@if(Model != null)
{
// your code.
}
else
{
<p>No item found </p>
}
推荐阅读
- javascript - 在 JavaScript 中的单个按钮上使用 addEventListener 和 removeEventListener 两次
- javascript - 如何在运行嵌套的for循环javascript时最小化执行时间
- node.js - node.js 中的两个 http 调用
- javascript - 从 background.js 执行 content.js 脚本代码
- r - 在 R 中安装 FIELDimageR 包时出错
- laravel - 如何将变量从刀片文件传递到 laravel 中的控制器?
- activemq - ActiveMQ 缓存 LDAP 管理员无法阅读建议
- swift - 快速更改模型中的属性值
- javascript - SAP UI5 Smart Table中如何实现初始排序
- rust - 如何对 Rust 中的流水线方法调用执行集中错误处理?