2015-08-25 153 views
2

在我的語法中可能是一個錯誤,但我一直無法爲我的EditorFor設置默認值,在我看來使用ViewBag在使用ASP.NET MVC的View的EditorFor()方法中顯示ViewBag的值

我檢查了ViewBag.FirstName中的值正在正確傳遞,這很好。但是,該字段不顯示任何值。

我的說法是:

@Html.EditorFor(model => model.Person.FirstName, new { htmlAttributes = new { @class = "form-control" } , @Value = ViewBag.FirstName }) 

任何幫助將不勝感激。
道歉爲我的問題的簡單性。

+1

爲什麼地球上你會這樣做(除了使模型綁定失敗)。設置你的模型屬性的值(不是'ViewBag'屬性) –

回答

6

你應該真的只是做模型綁定正常的方式:通過分配模型屬性的值。 ViewBag是不可維護的,不是強類型的。

如果你真的需要ViewBag出於某種原因,只是你的任務移動到@ValuehtmlAttributes對象的內部,像這樣:

@Html.EditorFor(model => model.Person.FirstName, new { htmlAttributes = new { @class = "form-control", @Value = ViewBag.FirstName } }) 
+0

Hi @johnnyRose,我已經使用了這個解決方案,儘管它綁定了數據並在視圖中顯示它,但是在Form Post上我得到了該屬性的空值。我錯過了什麼嗎? –

+0

@AjendraPrasad:您應該使用模型綁定兩種方式。不要使用ViewBag - 而是設置你試圖綁定到的屬性。如果這不起作用,您可能需要提出一個新問題,因爲您提供的信息有限。 – johnnyRose

0

我知道這是對一個老答案,感謝johnnyRose正確的一個。我只是想補充一點,我仍然無法獲得與它一起傳遞的@value,這是因爲@Value是一個簡單的案例v = V ..想要分享我的無知,希望能幫助別人。 :)

相關問題