2013-11-01 26 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

相关问题