读书人

求Action一问解决办法

发布时间: 2012-03-13 11:21:12 作者: rapoo

求Action一问
ASP.netMVC3+EF4,以下代码可以运行,但有些奇怪
有一Action如下:
public ActionResult Edit(int? id)
{

List<ClassCategory> categories = context.ClassCategories.ToList();
for (int i = 0; i < categories.Count; i++)
{
categories[i].CategoryName = categories[i].CategoryName.PadLeft(categories[i].CategoryName.Length + (int)categories[i].NodeLevel, ' ');
}

ViewBag.ClassCategories = categories;


if (id.HasValue)
{
Regex rgx = new Regex(@"\d+/$");


ClassCategory cat = context.ClassCategories.SingleOrDefault(c => c.CategoryID == id);
string parent = rgx.Replace(cat.NodePath, "");

cat.ParentID = context.ClassCategories.FirstOrDefault(c => c.NodePath == parent).CategoryID;

return View(cat);
}

return View(new ClassCategory());
}

奇怪的地方:
List<ClassCategory> categories = context.ClassCategories.ToList();
for (int i = 0; i < categories.Count; i++)
{
categories[i].CategoryName = categories[i].CategoryName.PadLeft(categories[i].CategoryName.Length + (int)categories[i].NodeLevel, ' ');
}

ViewBag.ClassCategories = categories;
这几行代码将得到数据项某字段前加上空格;


下面代码里的ClassCategory实例是从Context上下文得到的,并非前面的List,奇怪的地方在于cat实例的CategoryName前面也有加上的空格:
if (id.HasValue)
{
Regex rgx = new Regex(@"\d+/$");


ClassCategory cat = context.ClassCategories.SingleOrDefault(c => c.CategoryID == id);
string parent = rgx.Replace(cat.NodePath, "");

cat.ParentID = context.ClassCategories.FirstOrDefault(c => c.NodePath == parent).CategoryID;

return View(cat);
}


[解决办法]
ViewBag是引用类

读书人网 >asp.net

热点推荐