これは私がMVC 2 編集でそれを行う方法です。私はまた、Haacked記事
で述べたjson2.jsスクリプトを使用するHTMLの一部:
<ul class="sortList">
<% foreach(var item in Model){ %>
<li id="item_<%= item.ID %>">
のjQuery:
$(".sortList").sortable(
{
connectWith: ".sortList",
containment: "document",
cursor: "move",
opacity: 0.8,
placeholder: "itemRowPlaceholder",
update: function(event, ui) {
$.post("/Admin/UpdateSortOrder/", { sortlist: $(this).sortable("serialize") });
}
});
値が掲載されている:
"item_0d2243bf-e01d-4049-964c[]=d69b92009072&item_bab23d45-442b-4178-817c[]bbdea32ff226&item_e987ed37-cf30-4413-8687[]=9dc8d111482a"
アクション
[HttpPost]
public ActionResult UpdateSortOrder(string sortlist)
{
string[] separator = new string[2] { "item_", "&" };
string[] tempArray = sortlist.Split(separator, StringSplitOptions.RemoveEmptyEntries);
if (tempArray.Length > 0)
{
for (int i = 0; i < tempArray.Length; i++)
{
tempArray[i] = tempArray[i].Replace("[]=", "-");
Guid _id = new Guid(tempArray[i]);
var temp = _session.Single<Photo>(x => x.ID == _id);
temp.Sortorder = i + 1;
_session.Update(temp);
_session.CommitChanges();
}
} return Content("volgorde aangepast");
}
使用しているMVCのバージョンは何ですか? MVC 3は、jQuery – Jon
MVC 2を介してモデル構造にシリアル化する限り、正しくバインドする必要があります。MVC 3がなくなる前にプロジェクトを開始したからです。現時点では、少なくともこのプロジェクトが完了するまで、MVC 3にアップグレードするつもりはありません。 – LiamGu