我有一个从 POCO 类继承的强类型视图。我想在视图加载时使用 Querystring 值初始化模型的属性。
在 View Load 我使用 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 是字节类型。
请求的 URL 有点像这样:http://TestApp/Data/AddData?Param1=One
在 View Save 事件中,我正在使用模型绑定,但问题是我看不到控制器中初始化的 param 的值。它始终为 NULL。
我的保存事件映射到控制器:
[HttpPost]
public ActionResult SaveData(MyData d)
{
string paramValue = d.Param; //this always returns null
BO.保存(d);}
我检查了 HTML 源代码,发现隐藏字段本身的值是空白的。不知道为什么会发生这种情况,因为下面的代码有效并在标题元素中显示了参数值
<h2> <%=Html.Encode(ViewData["QueryStringValue"]) %> </h2>
我不知道我在哪里出错了。