Asp.net mvc 3 仅筛选名称
我实际上在我的项目中使用了过滤器。我将值传递到数据库中的id中。例如:如果有学生名。我没有像“mala”那样存储学生名。我传递的值像12,13等等。,我的问题是当我过滤函数名时,它没有正确过滤。它只显示Id。我如何才能更改为名称?任何人请帮助我。我的代码在这里Asp.net mvc 3 仅筛选名称,asp.net-mvc-3,Asp.net Mvc 3,我实际上在我的项目中使用了过滤器。我将值传递到数据库中的id中。例如:如果有学生名。我没有像“mala”那样存储学生名。我传递的值像12,13等等。,我的问题是当我过滤函数名时,它没有正确过滤。它只显示Id。我如何才能更改为名称?任何人请帮助我。我的代码在这里 <div class="section"> <% var topFunctions = Model.GroupBy(q => q.FunctionId)
<div class="section">
<% var topFunctions = Model.GroupBy(q => q.FunctionId)
.OrderByDescending(gp => gp.Count())
.Take(5)
.Select(g => g.Key).ToList(); %>
<h5>Function</h5>
<ul>
<% foreach (var function in topFunctions) { %>
<% var url = "http://localhost:55996/jb" + Djsite.Helpers.StringHelper.AssembleQueryStrings(filters) + "Fun=" + function; %>
<li><a href="<%: url %>"><%: function %></a></li>
<% } %>
</ul>
</div>
<% } %>
q、 函数ID)
.OrderByDescending(gp=>gp.Count())
.采取(5)
.Select(g=>g.Key).ToList();%%>
作用
我认为您希望使用:
<li><a href="<%: url %>"><%: function.Name %></a></li>
其中,function.Name
中的.Name是您所调用的用户名
编辑
根据您的评论:
如果只向视图发送键列表,则视图无法使用您的
名称。您需要将实际模型发送到视图,而不是键-键只是键,它们不包含任何实际用户名。您应该将您的逻辑移出视图,以帮助简化此过程。首先,一个重要的提示:您应该在控制器中进行此过滤,并将结果推送到专门为此类结果构建的模型类型中。我认为,这种逻辑将类视为业务逻辑,因此您不应将其视为业务逻辑
不过,要回答最初的问题:这完全取决于您的模型中是否有函数名。如果不是,那么你需要把它放进去
假设是这样,并且它可以通过FunctionName
属性使用,您可以使用:
Model.GroupBy(q => q.FunctionId)
.OrderByDescending(gp => gp.Count())
.Take(5)
.Select(g => g.First().FunctionName).ToArray();
请注意,我还将ToList
更改为ToArray
——除非以后需要修改结果,否则不要创建列表。我认为这行不通,因为可枚举项是KeysAh的Select
,您当时没有向视图发送适当的信息。您需要将实际模型发送到视图,而不是键-键只是键,它们不包含任何实际用户名。必须添加有关函数方法的存储库文件。是的-基本上是从控制器“向下”层次结构的任何位置,而不是在您的视图中。不要误会我的意思——如果我正在原型化一个网站或其他什么,我会打破这条规则,但在任何可能最终会有生命周期的事情上,尝试“正确地”完成它,从长远来看,这会节省你的时间。