2011-02-09 56 views
1

我可能还没有丝毫措辞这个问题的标题特别好。如何处理ASP.NET MVC中的序列化字符串?

我有点新手的时候谈到了很多JSON的点点滴滴,目前,我有一个产生以下序列化的字符串嵌套排序插件:

list[1]=root&list[2]=root&list[3]=2&list[4]=2&list[5]=2&list[6]=2&list[7]=root&list[8]=root&list[9]=root&list[10]=root&list[11]=10&list[12]=10&list[13]=10&list[14]=10&list[15]=root&list[16]=root

哪个一切都很好,但我不知道如何在我的控制器中处理它。我有一个Google,但找不到任何具体的东西,但我认为我的搜索条件与我的问题标题一样措辞不佳。

有人可以指点我正确的方向吗?

感谢您提前提供任何帮助。

+0

您使用的是什么版本的MVC?只要MVC 3正确地绑定它,只要您通过jQuery – Jon 2011-02-09 11:34:25

回答

2

这是我如何做到这一点的MVC 2 编辑:我也用Haacked文章的HTML

部分中提到的json2.js脚本:

<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"); 
     }