第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

ASP.Net MVC Html.HiddenFor具有錯(cuò)誤的值

ASP.Net MVC Html.HiddenFor具有錯(cuò)誤的值

aluckdog 2019-10-26 11:08:20
我在項(xiàng)目中使用MVC 3,并且看到了一個(gè)非常奇怪的行為。我正在嘗試為模型上的特定值創(chuàng)建一個(gè)隱藏字段,問題是由于某種原因,在字段上設(shè)置的值與模型中的值不對應(yīng)。例如我有以下代碼,作為測試:<%:Html.Hidden("Step2", Model.Step) %><%:Html.HiddenFor(m => m.Step) %>我認(rèn)為這兩個(gè)隱藏字段將具有相同的值。我要做的是,在第一次顯示“視圖”時(shí)將該值設(shè)置為1,然后在提交后將“模型”字段的值增加1。因此,我第一次呈現(xiàn)頁面時(shí)兩個(gè)控件的值均為1,但是第二次呈現(xiàn)的值分別為:<input id="Step2" name="Step2" type="hidden" value="2" /><input id="Step" name="Step" type="hidden" value="1" />如您所見,第一個(gè)值是正確的,但是第二個(gè)值似乎與我第一次顯示View相同。我想念什么?* For HTML幫助程序是否以某種方式緩存值?如果是這樣,如何禁用此緩存?謝謝你的幫助。
查看完整描述

3 回答

?
搖曳的薔薇

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊

這很正常,這就是HTML助手的工作方式。他們首先使用POST請求的值,然后使用模型中的值。這意味著,即使您在控制器操作中修改了模型的值(如果POST請求中存在相同的變量),您的修改也將被忽略,并將使用POSTed的值。


一種可能的解決方法是在試圖修改值的控制器操作中,從模型狀態(tài)中刪除該值:


// remove the Step variable from the model state 

// if you want the changes in the model to be

// taken into account

ModelState.Remove("Step");

model.Step = 2;

另一種可能性是編寫自定義HTML幫助程序,該幫助程序?qū)⑹冀K使用模型的值而忽略POST值。


還有另一種可能性:


<input type="hidden" name="Step" value="<%: Model.Step %>" />


查看完整回答
反對 回復(fù) 2019-10-26
?
三國紛爭

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊

在編寫向?qū)r(shí)會遇到相同的問題,該向?qū)г诿總€(gè)步驟都顯示較大模型的不同部分。

來自“第1步”的數(shù)據(jù)和/或錯(cuò)誤將與“第2步”混合,以此類推,直到我最終意識到ModelState被“怪罪”。


這是我的簡單解決方案:


if (oldPageIndex != newPageIndex)

{

    ModelState.Clear(); // <-- solution

}


return View(model[newPageIndex]);


查看完整回答
反對 回復(fù) 2019-10-26
  • 3 回答
  • 0 關(guān)注
  • 560 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號