取值我有一个动作在我的控制器:查看从查询字符串,而不是模型
public PartialViewResult MyAction(int? myId, int? myId2)
{
MyModel model = new MyModel() { MyId = 10, MyId2 = 20 }
return PartialView(model);
}
这是我的观点:
@model StartSite.Models.Shared.MyModel
@using (Html.BeginForm())
{
@Html.HiddenFor(m => m.MyId)
@Html.HiddenFor(m => m.MyId2)
<p>
<input type="submit" value="Submin" />
</p>
}
允许使用参数调用MyAction 身份识别码= 1 & myId2 = 2。但该模型是用不同的值创建的新的MyModel(){MyId = 10,MyId2 = 20}。而且应该看到什么?正如我期望它应该是:
<input id="MyId" name="MyId" type="hidden" value="10">
<input id="MyId2" name="MyId2" type="hidden" value="20">
但实际上结果是:
<input id="MyId" name="MyId" type="hidden" value="1">
<input id="MyId2" name="MyId2" type="hidden" value="2">
正如我猜Html.HiddenFor取值不是从我的模型,但是从Reauest.QueryString这是myId = 1 & myId2 = 2在呈现视图的那一刻。
为什么会发生?它预期的行为?
UPDATE 1: 我编辑了我的问题,以便更清楚。
myId2从哪里来?复制粘贴错误,或者我们正在查看控制器的属性? (免于行动签名) – 2014-10-06 20:49:31
是的,对于这个错字抱歉。现在是正确的。 – Sergey 2014-10-07 07:25:48
作出返回视图,而不是返回部分视图,让我知道如果你仍然面临这个错误。如果没有,我可以向你解释细节。 – 2014-10-07 09:08:09