2013-11-01 32 views
0

我正在向MVC4控制器操作發佈表單。我遍歷FormCollection像這樣:已將發佈的值關閉一個

[HttpPost] 
    public ActionResult Details(string nctId, FormCollection collection) 
    { 
     foreach (var key in collection.AllKeys) 
     { 
      var value = Request.Form[key]; // <-- breakpoint here 
     } 

     return RedirectToAction("Details", new { nctId = nctId }); 
    } 

我(覺得)我提交與以下select輸入的形式:

  • 名= 「ddlOne」 ID = 「ddlOne」,值= 「ValueOne」
  • 名稱= 「ddlTwo」,ID = 「ddlTwo」,值= 「ValueTwo」
  • 名稱= 「ddlThree」,ID = 「ddlThree」,值= 「ValueThree」

然而,當我把一個斷點在指定的行,我看到下面的結果:

  • 關鍵: 「ddlOne」,值:空
  • 關鍵: 「ddlTwo」,值: 「ValueOne」
  • key:「ddlThree」,value:「ValueTwo」

正如您所看到的,值是「以1爲單位」。

什麼可能導致此問題?

+0

你可以顯示你的'選擇'列表的標記也只是作爲建議使用模型綁定而不是'FormsCollection'迭代 –

回答

1

發生轉折點之前發生轉讓。

按F10一次可以在作業上前進執行並查看更新(並正確)配對。或者,直接檢查Request.Form以確認一切正常。

+0

啊!當然。它已經知道'key'是什麼,但它還沒有賦值'value'。 –

+0

我想我沒有想到它會在下一次循環中回收'value' –

+0

@tacos_tacos_tacos VS調試器非常好,但是這裏和那裏都有小小的greml。需要一些練習來繞過這些小動物。 – user2864740

相關問題