我是新的MVC。我有一個代碼,它正要從控制器填充viewdata並傳遞給view。只是看看代碼。關於分配模型數據到文本框在asp.net MVC
控制器
public ActionResult Edit(int id)
{
ViewData["Name"] = "My name is XYZ";
return View();
}
視圖頁面
@Html.TextBox("Name")
我的問題是文本框怎麼理解提取姓名和顯示爲文本框的值。基本上名字被存儲在viewdata中。首先我們需要從viewdata中提取數據,然後我們可以將該數據分配給文本框作爲值。怎麼運行的 ?。
有人解釋,但事情對我來說並不
MVC設計有默認的協議,以尋找關鍵字,並設法使聯想到這些關鍵字很清楚。您已選擇使用「名稱」作爲臨時數據對象。然後,MVC將努力尋找具有相同名稱的任何元素。它相信您打算爲元素指定與您的ViewData對象相同的名稱,因爲您希望它關聯。
對於ViewBag也是如此。您可以給ViewBag一個名稱(ViewBag.Name),並且每當您爲某個元素使用「Name」時,MVC將自動假定您希望該元素與ViewBag數據關聯。這也適用於列表!
ViewBag.myList = db.Products.ToList();
@Html.DropDownList("myList");
我都懂MVC流不是很clear.i在MVC是新的。所以我正在閱讀mvc教程。在閱讀上述答案後,我不太容易理解。只是想想asp.net web表單。在asp.net web表單
如果我們存儲任何進入的視圖狀態或會話像這樣viewstate["Name"]="Mou" or session["Name"]="Mou"
那麼我們就需要渲染在像這樣的客戶端是價值<asp:textbox value=<% name %>/>
然後我會得到錯誤,但是,如果我們這樣寫方式<asp:textbox value=<% viewstate["Name"] as string %>/>
那麼將工作。所以如何MVC可以理解,如果我們指定簡單@Html.TextBox("Name")
假設名稱可以存儲在會話,viewdata,viewbag,tempdata等,所以如何MVC引擎可以解決它?用更多的例子尋找好的解釋。 謝謝
我有點混淆關於下拉綁定。你的MyViewModel有兩個屬性,一個是SelectedValue,另一個是值,所以你可以寫model.Value =「2」; ?有沒有名爲價值的屬性?你沒有展示如何使用SelectedValue屬性?如果可能請告訴我如何使用SelectedValue屬性。謝謝 – Thomas
對不起,這是我的錯誤。它應該是'model.SelectedValue =「2」;'。我已經更新了我的答案以反映這一點。 –