如何使用MVC4中的拆分函数将记录插入字符串中



嗨,所有我都有这样的字符串,我将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类别1〜2001 => 1001_brand1 |在这里类别1〜2001是1001_brand1的子菜单,我想你们所有人都在做我要做的waht可以在这里帮助我

我正在做什么

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

您几乎在那里,只需将您的帖子方法替换为

      [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('|');

u将获得一个空的('|'),您必须处理此

希望这有效

最新更新