我正在爲將對象的列表傳遞給來自視圖的C#代碼而苦苦掙扎。如果我傳遞一個簡單的字符串,它工作正常。但它不適用於List。所以我相信我在這裏錯過了一些東西。使用HttpPost將View對象的列表傳遞給控制器
查看
<div class="row control-actions">
@{
List<MyObject> test = ViewBag.ObjectsList;
<button type="button" class="btn btn-primary btn-wide" onclick="addAllObjectsToExp('@test')">Add All</button>
}
</div>
<script type="text/javascript">
function addAllObjectsToExp(objList) {
$.post('@Url.Action("AddAllObjectsToExp", "ExportObjects")', { objectsList: objList},
function (result) {
$('#numbers').html(result);
});
}
</script>
代碼
[HttpPost]
[OutputCache(Location = System.Web.UI.OutputCacheLocation.None, NoStore = false, Duration = 0)]
public int AddAllObjectsToExp(List<MyObject> objectsList)
{
foreach(MyObject obj in objectList)
{
//Do something here
}
//and return an integer
}
在調試我可以看到,@測試變量得到填充myObject的名單。但是當我到達代碼端時,它總是空的。
請讓我知道如果我在這裏失蹤的東西。另外告訴我是否需要更多信息。
請注意,模型 - 視圖 - 控制器標籤是關於模式的問題。 ASP.NET-MVC實現有一個特定的標籤。 –