[英]ASP.NET MVC: Action Method and automatically binding to an array of values
我有一段JavaScript,可以發布到一個操作方法中,並附帶一些數據。 該數據的格式為:
pageID 1
photos[1] 2
photos[2] 1
我的操作方法如下所示:
public ActionResult PosImage(IEnumerable<int> photos, int pageID)
自然,pageID通過表單數據進入,但是照片始終為空。
ASP.MVC是否可以像這樣進行綁定?
處理該帖子的JS如下所示:
var ids = { 'photos': {}, 'pageID': SitePhotos.site_id };
$('#stone-photo-sortable li').each(function (i) {
i++;
var id = $(this).attr('rel');
ids.photos[id] = i;
});
$.ajax({
type: "POST",
url: '/backend/site/posimage/?timestamp=' + new Date().getTime(),
dataType: 'json',
data: ids,
beforeSend: function () { },
complete: function () { },
success: function (html) {
if (html.worked == 1) {
Notify.add('success', 'New Positions saved to the database..');
} else {
Notify.add('failure', 'Couldn\'t save positions.');
}
}
});
我還沒有用javascript完成它,但是您的發布數據實際上應該是這樣的:
photos: 1
photos: 2
photos: 3
您可能需要使用其他$ .ajax重載才能傳遞具有重復鍵名的帖子數據。
編輯似乎要做的就是將傳統標志設置為true。
在我看來,如果您將photos對象轉過來並將其變成一個數組,則對您來說會更好:
var ids = { 'photos': [], 'pageID': SitePhotos.site_id };
$('#stone-photo-sortable li').each(function (i) {
ids.photos[i] = $(this).attr('rel');
});
Sergio,這可以很容易地解決。
IEnumerable<int> photos
可以使用,但您的數組應始終從0
開始! 不等於1
使其從0
開始,MVC會將其解析為IEnumerable
在這里閱讀更多關於它的信息: http : //haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.