2012-05-01 16 views
0

私はMVC3を初めて利用していますasp.net MVC3詳細ページのクエリ結果を表示

DBには、ユーザー(id、name、username、lat、lon)という名前のテーブルがあります。私はデータベースにアクセスできない。

上記の表を使用してエンティティモデルを作成しました。次に、SearchControllerとSearch Viewを作成しました。インデックスページには、すべてのユーザーのリストが表示されます。また、ユーザー名を使用してテーブルを検索するページにフォームを作成しました。詳細リンクをクリックすると詳細ページが表示され、ユーザーの詳細が表示されます。

これで、選択したユーザーの1マイル以内の他のユーザーを表示する必要があります。私はすでに、選択されたユーザーの1マイル以内にある他のユーザーのリストを取得するSQLクエリを持っています(これはSQLクエリです)。詳細ページにこのリストを表示する必要があります。

私はカスタムクラスモデルを作成しました。

public class SearchDetailsViewModel 
{ 
    public decimal id { get; set; } 
    public string name { get; set; } 
    public string username { get; set; } 
    public Nullable<decimal> lat { get; set; } 
    public Nullable<decimal> lon { get; set; } 
    public string profile_img_url { get; set; } 
    public IQueryable<user> usersWithinAMile { get; set; } 
} 

これが適切なアプローチであるかどうかはわかりません。また、私はこのクラスをどのように初期化するのか分かりません。

本当にありがとうございます。

+0

データベースにアクセスできない場合、どのようにクエリを実行していますか? –

+0

私は接続文字列を持っています。だから私はデータベースを照会することができます。私はビューとストアドプロシージャを作成する権限がありません。 – shresthaal

答えて

0

はい、あなたは正しい軌道に乗っている、あなたがクラスにあなたのSQLからデータを取得し、表示するために、次に、のActionResultで、このような:

using System.Collections.Generic; 

public ActionResult Index() { 
    var data = new List<SearchDetailsViewModel>(); 
    // foreach row in your SQL 
    var s = new SearchDetailsViewModel(); 
    s.lat = -42.00000M; 
    // more data added to the s object here 
    data.Add(s); 
    // end loop 

    return View("ThePage", data); 
} 

次に、あなたのビュー自体あなたに

@foreach (var s in Model) { 
    // output your values on the page 
} 
関連する問題