c# - 当我按下项目的详细信息操作链接时出现此错误
问题描述
每次我点击一个项目的详细信息时,它都会给我一个错误并且 id 等于 0,但是如果在我拥有的项目数内将 id 号更改为大于 1 的任何值,它就会正常运行这是我的方法
public PhoneModel GetPhone(int id)
{
using(var context = new ElectronicsDataBaseEntities())
{
var result = context.Phone
.Where(x => x.Id == id)
.Select(x => new PhoneModel()
{
Name = x.Name,
Phonemodel = x.Model,
DateReleased = x.DateReleased,
Desicription = x.Desicription
})
.FirstOrDefault();
return result;
}
}
这是我在控制器中的操作方法
public ActionResult Details(int id)
{
var result = repository.GetPhone(id);
return View(result);
}
解决方案
将 Id 添加到您的查询中,并检查您的查询是否找到了一些东西。由于您的 url 显示 Id=0,因此您需要修复索引视图。应该是同一个故事。您必须添加 Id 才能选择索引视图的查询。
.....
.Select(x => new PhoneModel()
{
Id=x.Id,
Name = x.Name,
Phonemodel = x.Model,
DateReleased = x.DateReleased,
Desicription = x.Desicription
}).FirstOrDefault();
....
更新
尝试将此代码用于您的编辑操作链接
@Html.ActionLink("Edit", "Edit","Phone", new { id=item.Id })
并修复设置所有记录方法
public List<PhoneModel> GetAllPhones()
{
using(var context = new ElectronicsDataBaseEntities())
{
var result = context.Phone .Select(x => new PhoneModel()
{
Id=x.Id,
Name = x.Name,
Phonemodel = x.Model,
DateReleased = x.DateReleased,
Desicription = x.Desicription
}).ToList();
return result;
}
}
推荐阅读
- botframework - Bot Emulator 获得 POST 500 directline.postActivity
- c# - 当发送方在队列中发送消息时,RabbitMQ Consumer.Received 事件未在 asp.net Web 应用程序(作为侦听器)中触发
- powershell - 如何获取通过 PowerShell 在线定位的文件的文件大小?
- ignite - Apache Ignite 没有合适的驱动程序
- ios - 如何解释 Swift 函数声明?
- postgresql - 使用 ST_Distance_Sphere 和 ST_GeomFromText 获取距离
- odata - 在 SAP UI5 中为具有两个键的行(项目)预填充编辑页面
- image - 复制粘贴图形-功能-照片不复制
- command - 如何制作仅影响特定游戏模式中玩家的命令
- vb.net - 在选定的日历中创建约会 (VSTO vb.net)