ASP.NET视图中根据数据是否填充隐藏创建按钮问题求助
问题解决:ASP.NET视图中根据数据是否存在隐藏创建按钮
原代码的问题
- Razor语法错误:
@If需要写成小写的@if,否则会触发编译错误。 - 逻辑判断错误:
Model.Count是值类型(int),永远不会等于null,导致你的else分支永远不会执行;同时你的需求是「数据已填充时隐藏按钮」,原逻辑完全颠倒。
修正后的代码
假设你的Model是IEnumerable<Company>或List<Company>类型,修正后代码如下:
<div class="container p-3"> <div class="row pt-4"> <div class="col-6"> <h2 class="text-primary">Company List</h2> </div> <div class="col-6 text-end"> @if (Model.Count() == 0) { <a asp-controller="Company" asp-action="Create" class="btn btn-primary"> <i class="bi bi-plus-circle"></i> Create New Company </a> } </div> </div> </div>
补充说明
- 如果Model是
List<Company>,可以直接用Model.Count == 0(性能略优,无需LINQ);如果是IEnumerable<Company>,需要用Model.Count(),且确保视图顶部引用了@using System.Linq。 - 逻辑改为:当数据为空(Count为0)时显示创建按钮,数据已填充时自动隐藏,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者Pe Zar
相关产品推荐
相关产品推荐

