对不起,因为我的英语不好!但我有这样的问题
1.我创建了一个使用MVC3来管理菜单Multil Level和Table Menu的例子
- MenuWeb(MenuId,Name,Url,ParentId)
2.控制器中的CreateMenu函数:
[HttpGet]
public ActionResult CreateMenu()
{
ViewBag.MenuId = new SelectList(db.MenuWebs.ToList(), "MenuId", "Name");
return View();
}
[HttpPost]
public ActionResult CreateMenu(MenuWeb menu)
{
if (ModelState.IsValid)
{
db.MenuWebs.InsertOnSubmit(menu);
db.SubmitChanges();
return RedirectToAction("../admin/getallmenu");
}
return View();
}
3。在CreateMenu.cshtml中形成CreateMenu,如下所示:
@model MyBlog.Models.MenuWeb
@{
ViewBag.Title = "CreateMenu";
}
@using (Html.BeginForm())
{
<fieldset>
<legend>Create menu</legend>
<div class="div-lable">
Menu Parent:
</div>
<div class="div-editor">
@Html.DropDownList("MenuId")
</div>
<div class="div-lable">
Name:
</div>
<div class="div-editor">
@Html.EditorFor(model => model.Name)
</div>
<div class="div-lable">
Url Redirect:
</div>
<div class="div-editor">
@Html.EditorFor(model => model.UrlRedirect)
</div>
<div class="div-lable">
Order:
</div>
<div class="div-editor">
@Html.EditorFor(model => model.Ordes)
</div>
<div class="div-editor">
<input type="submit" value="Create Menu" />
</div>
<div class="div-editor">
@Html.ActionLink("Back to list", "getallmenu")
</div>
</fieldset>
}
在这个例子中。我不知道将DropIlist中的MenuId设置为ParentId?我尝试提交但是ParentId总是为空。请帮我!非常感谢。
答案 0 :(得分:0)
好吧改变你的代码:
<强>控制器强>
替换此
ViewBag.MenuId = new SelectList(db.MenuWebs.ToList(), "MenuId", "Name");
用
ViewBag.MenuIds = new SelectList(db.MenuWebs.ToList(), "MenuId", "Name");
查看
替换此
@Html.DropDownList("MenuId")
用
@Html.DropDownListFor(model => model.ParentId, (SelectList)ViewBag.MenuIds)
这将解决您的问题。