在我看來,我有一個下拉,我通過Ajax調用填充。此下拉列表位於表單內。然而,在提交時,我在formCollection中看不到這個控件。FormCollection不包含<select>控件添加在MVC Razor
還有一件事,或者當我嘗試添加Html.DropDownList(「AccountId」)時,出現錯誤 - 沒有包含'AccountId'鍵的'IEnumerable'類型的ViewData項目。
上市我的視圖和控制器代碼...
--View--
using (Html.BeginForm("GetNames", "Account", FormMethod.Post, new { id = "accountParameters" }))
{
....
....
<select id="AccountId" runat="server"></select> //This is not available in formcollection
//Html.DropDownList("AccountId"); //This throws exception
@:<p><input type='submit' value='Submit'/></p>
}
...
...
<script>
$(document).ready(function() {
$.ajax({
url: '/Account/GetAccounts',
type: "GET",
success: function (result) {
for (i = 0; i < result.length; i++) {
$('#AccountId').append($('<option></option>').val(result[i].accountId).html(result[i].name));
}
}
});
});
</script>
- 控制器 -
public ActionResult GetAccounts(string id)
{
return Json(GetAccounts(), JsonRequestBehavior.AllowGet);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult GetNames(FormCollection formCollection)
{
if (("AccountId") != null)
{
....
....
}
}
Ajax調用是否工作?即當頁面加載時填充的表單是什麼? – 2011-03-22 10:28:11
是的。我在Select元素中獲得項目 – Vijay 2011-03-22 10:51:49