2011-10-25 6 views
0

私はMVCを初めて使用しています。MVC 3とエンティティフレームワーク4.1を使用しています。MVC 3変数に異なるデータベース値を取得

私は次があります。

public ViewResult Index(string id) 
{ 

return View(db.Documents.Where(r => r.DocNum == id).ToList());    

} 

これは私の文書DOCNUMを含むすべてのレコードのリストを提供します。 Documentテーブルには、TITLEフィールドもあります。返されたViewの先頭で使用するために、そのTITLEをViewBagに配置する必要があります。 Document.TitleをViewBagに入れるにはどうしたらいいですか?

答えて

1

私はあなたが探していると思う:

var document = db.Documents.Where(r => r.DocNum == id).ToList().FirstOrDefault(); 
if (document != null) 
{ 
    return View(document.Title); 
} 
return View("No Document Matched"); 

更新

あなたは経由ビューに文書を返却する場合:あなたができるビューで次に

return View(db.Documents.Where(r => r.DocNum == id).ToList()) 

単純に(仮面ライダー):

@{ 
string docTitle = "No Document Machted"; 
var document = db.Documents.Where(r => r.DocNum == id).ToList().FirstOrDefault(); 
if (document != null) 
{ 
    docTitle = document.Title; 
} 

<html><head><title>@docTitle</title>... 

それとも...そして

[View.cshtml] 
@{ 
ViewBag.Title = "No Document Machted"; 
var document = db.Documents.Where(r => r.DocNum == id).ToList().FirstOrDefault(); 
if (document != null) 
{ 
    ViewBag.Title = document.Title; 
} 

[Layout.cshtml] 
<html><head><title>@ViewBag.Title</title>... 
+0

をカミソリレイアウトを使用している場合、私は私が既に持っている返されたビューを保持したいと思います。しかし、ビューの最上部(返されるリストの上)に配置するビューにドキュメントタイトルを送る必要があります。だからこそ私は、ViewBagにタイトルを設定する必要があると思いました。 – drjackevan

+0

あなたの質問を誤解して申し訳ありません –

+0

あなたの答えは私を正しい方向に導いてくれました。以下の答えは私の望むものを与えてくれました: – drjackevan

関連する問題