我必須從MVC中的viewbag屬性創建一個文本框。我可以做像@Html.TextBox("Comments", (string)ViewBag.Comments)
這樣的映射,但是如何在頁面發佈到服務器時將其讀回。它沒有填充視圖包的財產。我對MVC很陌生,所以也許完全不瞭解這個概念。創建MVC中的View包並將其賦值給文本框
感謝
我必須從MVC中的viewbag屬性創建一個文本框。我可以做像@Html.TextBox("Comments", (string)ViewBag.Comments)
這樣的映射,但是如何在頁面發佈到服務器時將其讀回。它沒有填充視圖包的財產。我對MVC很陌生,所以也許完全不瞭解這個概念。創建MVC中的View包並將其賦值給文本框
感謝
你ViewBag不會得到從您的視圖更新,這是不是從你的表格中獲取數據的方式。相反,您應該使用強類型模型綁定來從您的Action Method中讀取數據,或者您可以簡單地檢查表單數據中的密鑰。我向你展示兩個示例:
示例1:強類型模型綁定。
[HttpPost]
public ActionResult MyAction(string comments)
{
// the Comment from the text box.
return View();
}
例2:從發佈數據讀取:
[HttpPost]
public ActionResult MyAction()
{
// the Comment from the text box.
string comments = Request.Form["comments"];
return View();
}
我希望你會喜歡用例1
總之,最好的做法是你的視圖綁定一個Model類並使用HtmlHelper生成如下文本框:
Html.EditorFor(model => model.Comments)
您的Model類包含名爲Comments的屬性。
而您的操作方法應接受與參數相同的模型類型。這裏是一個例子:
[HttpPost]
public ActionResult MyAction(MyModel model)
{
string comments = model.Comments;
}
而且你應該綁定你的視圖與MyModel類型的模型。
我可以理解,由於您剛剛接觸MVC,因此現在可能並不明確,所以我建議您查看一些基本的MVC教程。您可以從這裏開始:http://www.asp.net/mvc/tutorials
'ViewBag'用於將值從控制器傳遞到視圖(而不是相反方向)。發佈時,表單集合將包含鍵「Comments」(控件的名稱)的值,但您最好創建一個代表要編輯的屬性的視圖模型,並讓MVC爲您完成所有綁定。 – 2014-10-09 01:16:34