2016-10-14 6 views
0

asp.net MVCを使用してWebサイトを作成しようとしています.MongoDbを使用してメッセージを格納するチャットアプリケーションが含まれています。私が抱えている問題は、コレクションからすべてのメッセージを取得して表示する方法がわからないことです。ここでC#を使用してMongoDBのフィールドからすべての値を取得する方法

は私のモデルです:

public class MessageViewModel 
{ 
    public ObjectId _id { get; set; }   
    public string FirstName { get; set; } 
    public string UserName { get; set; } 
    public string Text { get; set; } 
} 

マイコントローラ:

MongoClient client; 
IMongoDatabase database; 

    public UserController() 
    { 
     client = new MongoClient("mongodb://localhost:27017"); 
     database = client.GetDatabase("UserMessaging"); 
    } 

public ActionResult Messages() 
    { 
     var username = User.Identity.Name; 
     MessageViewModel model = new MessageViewModel(); 

     var messageCollection = database.GetCollection<MessageViewModel>("messages"); 
     var messages = from m in messageCollection.AsQueryable() 
         where m.UserName == User.Identity.GetUserName() 
         select m; 
     return View(messages.ToList()); 
    } 

そして、私のビュー:

<h2>Messages</h2> 

<form class="navbar-form"> 
<input type="text" class="form-control" id="SearchUser" placeholder="Type a  user" /> 
<input type="hidden" id="project-id" /> 
</form> 

<div class="container"> 
<ul id="discussion"> 
    @if (Model != null) 
    { 
     { int i = 0; } 
     foreach (var item in Model) 
     { 
      <li><p>@item.Text</p></li> 
     } 
    } 

</ul> 
</div> 

私はMongoDBのに新しいので、私ならば、私はごめんなさい完全にそれを盗んだ!詳細が必要な場合は、私に知らせてください。 ありがとうございました!

+0

を返しますあなたは何ヘクタールを説明することができますppens?何も戻ってきませんか?一部?あなたのfindはシェル/あなたのfavエディタで動作しますか?あなたのコントローラにありますがフロントエンドにはありません – HoefMeistert

+0

すばやい返信をありがとう!私のビューは正常に読み込まれ、データベースとの接続が確立されます。私は戻って何かを得るかどうかわからない。はい、私のfindはシェルで動作します。あなたの最後の質問が何を意味するのか分かりません。申し訳ありません。お役に立てれば! @HoefMeistert – Joemidget

+0

あなたのコントローラのあなたのコードは何か "メッセージ" varに何かが入っているのか、それとも空であるのですか? – HoefMeistert

答えて

0

問題を解明しました!ライン:)(

var messageCollection = database.GetCollection<MessageViewModel>("message") 
0

だけの思考、あなたはMongoDBの2.0ドライバを使用している(と非同期)、あなたはネイティブの検索を使用することができれば:私のコントローラで

var messageCollection = database.GetCollection<MessageViewModel>("messages") 

はなるはずでしたそれは次のようになります。

var messageCollection = database.GetCollection<MessageViewModel>("message") 
var results = messageCollection.Find(x => true).ToListAsync(); 

をこれは、コレクション内のすべての項目

関連する問題