取值我有一個動作在我的控制器:查看從查詢字符串,而不是模型
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