Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 如何使用MVC4中的split函数将记录从字符串插入到字符串中?_C# 4.0_Asp.net Mvc 4 - Fatal编程技术网

C# 4.0 如何使用MVC4中的split函数将记录从字符串插入到字符串中?

C# 4.0 如何使用MVC4中的split函数将记录从字符串插入到字符串中?,c#-4.0,asp.net-mvc-4,C# 4.0,Asp.net Mvc 4,大家好,我有一个这样的字符串,我正在将一个ajax函数传递给我的控制器操作方法 Brand1~1001=>undefined_undefined| Category1~2001=>1001_Brand1| Category2~2002=>1001_Brand1| Product3~3003=>2002_Category2| Produc

大家好,我有一个这样的字符串,我正在将一个ajax函数传递给我的控制器操作方法

       Brand1~1001=>undefined_undefined|
           Category1~2001=>1001_Brand1|
           Category2~2002=>1001_Brand1|
                  Product3~3003=>2002_Category2|
                      Product4~3004=>Product3~3003|
                 Product5~3005=>2002_Category2|
                 Product6~3006=>2002_Category2|
我在db中有一个菜单表,我把它作为实体模型添加到我的项目中

       Menus

          [MenuID],[MenuName],[ParentID]
我有这样的模型

           public class MenuItems
            {
              public List<MenuItems> GetALL { get; set; }
              public int MenuId { get; set; }
              public string MenuName { get; set; }
              public int parentId { get; set; }
            }
           [MenuID],[MenuName],[ParentID]
            1001   ,Brand1    ,null
            2001   ,category1 ,1001
            2002   ,category2 ,1001
            3003   ,product3  ,2002
            3004   ,product4  ,3003
            3005   ,product5  ,2002
            3006   ,product6  ,2002
在上面的字符串Brand1~1001=>undefined_undefined |这里Brand1~1001是父菜单,1001是菜单的id Category1~2001=>1001|u Brand1 |这里Category1~2001是1001|u Brand1的子菜单,我想你们都知道我想做什么了,有人能帮我吗

我在尝试什么

    public ActionResult MenuDrag()
    {
        return View();
    }
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult MenuDrag(string menustring)
    {
        if (!String.IsNullOrEmpty(menustring))
        {
            string[] menus = menustring.Split('|');
            foreach (var m in menus)
            {
                string[] list = m.Split('>'); 
                //stuck from here confused what to do next and how do i insert the data in my accordingly
            }
        }

        return View();
    }

你就快到了,用这个替换你的post方法

      [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult MenuDrag(string menustring)
    {            
        MenuItems items = new MenuItems();
      //check the string for empty
        if (!String.IsNullOrEmpty(menustring))
        {
            string[] menus = menustring.Split('|');
            foreach (var m in menus)
            {
                if (m != "")
                {
                    string[] list = m.Split('>');


                    string[] menu = list[0].Split('~');
                    string[] parents = list[1].Split('~');
                    items.MenuItemID = Convert.ToInt16(menu[1]);
                    items.MenuName = menu[0].ToString();
                    if (parents[0] == "undefined")
                    {
                        items.ParentID = 0;
                        db.MenuItems.Add(items);
                        db.SaveChanges();
                    }
                    else
                    {
                        int parentid=Convert.ToInt16(parents[0]);
                        var menuid = from me in db.MenusMains where me.MenuItemID == parentid select new { MenuID = me.MenuID };
                        foreach (var id in menuid)
                        {
                            items.ParentID = Convert.ToInt16(id.MenuID);                               
                        }
                        db.MenuItems.Add(items);
                        db.SaveChanges();
                    }                      
                }
            }
        }
        return View();
    }

}
我用过

          if (m != "")
            {
            }
因为你可能会得到一个索引越界异常,因为当你的字符串在这个时候

  string[] menus = menustring.Split('|');
你会得到一个空的“|”,你必须处理这个问题

希望这能奏效