我有一個強類型視圖繼承自POCO類。我想在視圖加載時用Querystring值初始化模型的屬性。將查詢字符串數據傳遞給ASP.NET MVC中的模型2
在我使用的ViewData到保存代碼查看負載:
public ActionResult Data() {
ViewData["QueryStringValue"] = this.Request.QueryString["Param1"]
return View();
}
在HTML標記,我使用這個代碼在一個隱藏的變量初始化模型屬性
<%:Html.HiddenFor(m=>m.Param,
Convert.ToInt32(Html.Encode(ViewData["QueryStringValue"]))) %>
m.param是一種字節類型。請求
網址是有點像這樣:http://TestApp/Data/AddData?Param1=One
上查看保存的事件,我使用模型約束力,但問題是,我沒有能看到PARAM的控制器初始化值。它始終是NULL。
我保存事件映射到控制器:
[HttpPost]
public ActionResult SaveData(MyData d)
{
string paramValue = d.Param; //this always returns null
BO.Save(d); }
我檢查了HTML源代碼,發現隱藏字段本身的值是空白的。不知道爲什麼會這樣,因爲下面的代碼工作,並顯示在標題元素
<h2> <%=Html.Encode(ViewData["QueryStringValue"]) %> </h2>
我不知道在哪裏,我在這個出錯的參數值的方式。
另外,我想補充.. @model類型聲明不MVC 2 –
工作,這工作:),但是這不是我要的。我事先知道這個解決方案。我想知道我的代碼出錯了。最後它歸結爲一個鑄造問題。 –
@Kunal:很高興你的工作。爲什麼不切換到MVC 3? – Shyju