2013-05-01 77 views
2

我只是想一個文本框編輯字段出現與是否ViewBag.Savings包含「已通過了ViewBag例如在它的值來創建一個價值一個TextBox 6 ':如何使用剃刀EditorFor助手從ViewBag

editor field

我想是這樣的:

@Html.EditorFor(model => model.Value, ViewBag.Savings) 
@Html.ValidationMessageFor(model => model.Value) 

我得到的編譯器錯誤:編譯器錯誤消息:CS1973: 'System.Web.Mvc.HtmlHelper' 沒有適用的方法名爲'EditorFor',但似乎有這個名字的擴展方法。擴展方法不能動態分派。考慮轉換動態參數或者在不使用擴展方法語法的情況下調用擴展方法。

什麼是正確的語法?

回答

6

我覺得EditorFor需要一個模型 - >

@model Foo.Models.Savings 

然後

@Html.EditorFor(model => model.Value) 
@Html.ValidationMessageFor(model => model.Value) 

對於ViewBag你可以做:

@Html.TextBox("Savings", (string)ViewBag.Savings) 
+0

謝謝,我只是需要投ViewBag.Savings!線索出錯了 – Jimmy 2013-05-01 15:48:52

0

EditorFor HTML幫助想要一個強類型的對象,一個ViewBag不是。如果你真的想使用ViewBag你會做這樣的事情:

@Html.TextBox("savings", ViewBag.Savings) 
+0

返回相同的錯誤 – Jimmy 2013-05-01 15:32:52

+0

@JimBarton你得到了「‘編譯器錯誤信息:CS1973:‘System.Web.Mvc.HtmlHelper’評選沒有適用的方法’EditorFor'」錯誤依然? – Splendor 2013-05-01 15:49:05