C# 4.0 如何使用MVC4中的split函数将记录从字符串插入到字符串中?
大家好,我有一个这样的字符串,我正在将一个ajax函数传递给我的控制器操作方法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
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('|');
你会得到一个空的“|”,你必须处理这个问题
希望这能奏效