在asp.net mvc3中添加新菜单

时间:2012-11-29 16:20:23

标签: asp.net-mvc-3


对不起,因为我的英语不好!但我有这样的问题 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总是为空。请帮我!非常感谢。

1 个答案:

答案 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)

这将解决您的问题。