Asp.net mvc 3 仅筛选名称

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)

我实际上在我的项目中使用了过滤器。我将值传递到数据库中的id中。例如:如果有学生名。我没有像“mala”那样存储学生名。我传递的值像12,13等等。,我的问题是当我过滤函数名时,它没有正确过滤。它只显示Id。我如何才能更改为名称?任何人请帮助我。我的代码在这里

       <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
    ,您当时没有向视图发送适当的信息。您需要将实际模型发送到视图,而不是键-键只是键,它们不包含任何实际用户名。必须添加有关函数方法的存储库文件。是的-基本上是从控制器“向下”层次结构的任何位置,而不是在您的视图中。不要误会我的意思——如果我正在原型化一个网站或其他什么,我会打破这条规则,但在任何可能最终会有生命周期的事情上,尝试“正确地”完成它,从长远来看,这会节省你的时间。