我真的很傻,問這個問題,確定我錯過了一些非常簡單的事情,但我無法讓它工作!我可以將viewdatadictionary(mymodel)傳遞給mvc視圖嗎?那麼如何訪問它?
我在控制器中創建一個的ViewDataDictionary這樣的:
public ActionResult Index()
{
var recipient = new Recipient() {
FullName = "John Brown",
Company = "FP",
Email = "[email protected]"
};
ViewData = new ViewDataDictionary(recipient);
UserMailer.OnEventBook().Send();
return View();
}
但我不能工作,如何以訪問視圖中的數據。
我已經試過:
@ViewData["FullName"]
@ViewData.recipient["FulName"]
@ViewData[recipient.FullName]
@Model.FullName
@recipient.FullName
...和一些類似的組合。任何人都可以指引我走向正確的方向嗎?
更新
我知道我可以只通過它通過使用ViewBag或計算機[「收件人」。但我很好奇這樣做的方式。
以下是來自docs for MvcMailer,編寫它的人似乎知道他的東西,所以我認爲它必須是傳遞數據的有效方式。
var comment = new Comment {From = me, To = you, Message = "Great Work!"};
ViewData = new ViewDataDictionary(comment);
更新2
衛生署,我聽錯了。
MvcMailer調用動作中的動作,我應該在子動作(上面的代碼中的OnEventBook())中設置ViewData。
感謝您抽出寶貴時間來回答。是否有可能以另一種方式做到這一點?只是要更新一些細節的問題。 –
檢查我的答案更新。 – ssimeonov
'@ ViewData.Model。FullName'給我一個空引用異常的運行時綁定。如果我在視圖中添加一個'@ model'指令,我會得到一個標準的空引用exp。但我不需要,因爲它作爲ViewData傳遞,是嗎? –