ASP.NET MVC跨表按Contract_Num筛选报错:int转bool失败如何解决?
解决ASP.NET MVC中跨表搜索的"Cannot implicitly Convert 'int' to 'bool'"错误
这个错误的核心原因是你在控制器的Where条件里写了一个无效的表达式——x => x.contracts.Contract_Num,这里x.contracts.Contract_Num是整数类型,而Where方法需要的是一个返回布尔值(true/false)的判断逻辑,所以编译器会报错无法把int转成bool。
下面是具体的修复步骤:
1. 修正控制器的查询逻辑
你需要把Where条件改成判断输入的Contract_Num和数据库中的值是否匹配的逻辑,同时还要处理输入为空的情况,另外注意不要错误调用ToString()(这会把查询对象转成字符串,而非返回数据集):
//GET: ContractMonth public ActionResult Index(string Contract_Num) { // 提前关联contracts表,避免视图中访问关联数据时出现延迟加载问题 var query = _context.ContractMonth.Include(c => c.contracts); if (!string.IsNullOrEmpty(Contract_Num)) { // 把输入的字符串转为int,避免类型不匹配报错 if (int.TryParse(Contract_Num, out int contractNum)) { query = query.Where(x => x.contracts.Contract_Num == contractNum); } } // 把查询结果转为List传给视图 return View(query.ToList()); }
2. 调整视图的搜索表单参数绑定
你的视图文本框命名是contracts.Contract_Num,但控制器参数是Contract_Num,为了让参数能正确绑定,建议修改文本框的name属性:
<b>Search By:</b> @Html.TextBox("Contract_Num") <text>Contract Number</text> <input type="submit" value="Search" />
3. 修正视图的HTML结构
你的循环里把<tbody>放在了循环内部,每个条目都会生成一个<tbody>,不符合HTML规范,应该把<tbody>放在循环外面,同时补充<thead>让表格结构更完整:
<table> <thead> <tr> <th>Contract Number</th> <th>Month</th> <th>Rent Amount</th> <th>Receipt</th> <th>Balance</th> <th>Note</th> <th>Actions</th> </tr> </thead> <tbody> @foreach (var item in Model) { <tr> <td>@Html.DisplayFor(modelItem => item.contracts.Contract_Num)</td> <td>@Html.DisplayFor(modelItem => item.Monthe)</td> <td>@Html.DisplayFor(modelItem => item.contracts.AmountOfRent)</td> <td>@Html.DisplayFor(modelItem => item.Receipt)</td> <td>@{ var Balance = item.contracts.AmountOfRent - item.Receipt; } @Balance</td> <td>@Html.DisplayFor(modelItem => item.Not)</td> <td>@Html.ActionLink("تعديل", "Edit", new { id = item.ContractMonth_Id }) | @Html.ActionLink("التفاصيل", "Details", new { id = item.ContractMonth_Id }) | @Html.ActionLink("حذف", "Delete", new { id = item.ContractMonth_Id })</td> </tr> } </tbody> </table>
做完这些修改后,你的搜索功能就能正常运行,那个类型转换的错误也会消失。
内容的提问来源于stack exchange,提问作者Software Developer
相关产品推荐
相关产品推荐

