0

私は実際に私のプロジェクトでフィルターを使用しています.私はデータベースのIDに値を渡します.例えば:学生の名前がそこにある場合.私は「mala」のような学生の名前を保存しませんでした.私は12,13などのような値NameIdを渡します,私の質問関数名をフィルターすると、正しくフィルター処理されません.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>

<% } %>
4

2 に答える 2

0

私はあなたが使いたいと思う:

<li><a href="<%: url %>"><%: function.Name %></a></li> 

.Name infunction.Nameは、ユーザー名と呼んだものです

編集

あなたのコメントごと:

キーのリストのみをビューに送信すると、ビューでnames使用できなくなります。キーではなく、実際のモデルをビューに送信する必要があります。キーは単なるキーであり、実際のユーザーの名前は含まれていません。このプロセスを容易にするために、ロジックをビューの外に移動する必要があります。

于 2012-07-06T11:46:29.040 に答える
0

まず、重要な注意事項: コントローラーでこのフィルタリングを行い、このタイプの結果用に特別に構築された Model タイプに結果をプッシュする必要があります。この種のロジックは、ビジネスロジックとしてのクラスであるため、あなたの見解には含まれるべきではないと私は主張します。

ただし、元の質問に答えるには、関数の名前が で使用できるかどうかにすべて依存しますModel。そうでない場合は、そこに入れる必要があります。

それがあり、プロパティで利用できるとしましょうFunctionName。これを使用できます。

Model.GroupBy(q => q.FunctionId)      
     .OrderByDescending(gp => gp.Count())      
     .Take(5)      
     .Select(g => g.First().FunctionName).ToArray();

また、後で結果を変更する必要がない限り、リストを作成しないように変更ToListしたことに注意してください。ToArray

于 2012-07-06T11:54:12.500 に答える