MVC test

1,index

@{
    ViewBag.Title = "Index";
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <style type="text/css">
        #tblist
        {
            border: 1px solid #0094ff;
            width: 600px;
            margin: 10px auto;
            border-collapse: collapse;
        }

            #tblist th, td
            {
                border: 1px solid #0094ff;
                padding: 10px;
            }
    </style>
</head>
<body>
    <table id="tblist">
        <tr>
            <th>id</th>
            <th>姓名</th>
            <th>状态</th>
            <th>编辑</th>
        </tr>
        <!--变量action方法 设置viewData的集合数据生成html-->
        @foreach (test.Models.tb_name item in ViewData["DataList"] as List<test.Models.tb_name>)
        {
            <tr>
                <td>@item.Id</td>
                <td>@item.uName</td>
                <td>@item.uMark</td>
                <td>
                @Html.ActionLink("删除", "Del", new { id = item.Id })
                @Html.ActionLink("修改", "Update", new { id = item.Id })
                @Html.ActionLink("添加", "Add")
            </tr>
        }
    </table>

</body>
</html>

2,添加视图

@model test.Models.tb_name
@{
    ViewBag.Title = "Add";
}
<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Add</title>
    <style type="text/css">
        #tblist
        {
            border: 1px solid #0094ff;
            width: 600px;
            margin: 10px auto;
            border-collapse: collapse;
        }

            #tblist th, td
            {
                border: 1px solid #0094ff;
                padding: 10px;
            }
    </style>
</head>
<body>
    <h2>Create</h2>


    @using (Html.BeginForm())
    {
        @Html.ValidationSummary(true)
        <fieldset>
            <legend>Student</legend>

            <div class="editor-label">
                @Html.LabelFor(model => model.uName)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.uName)
                @Html.ValidationMessageFor(model => model.uName)
            </div>
            <div class="editor-label">
                @Html.LabelFor(model => model.uMark)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.uMark)
                @Html.ValidationMessageFor(model => model.uMark)
            </div>
            <p>
                <input type="submit" value="Create" />
            </p>
        </fieldset>
    }
    <div>
        @Html.ActionLink("Back to List", "Index")
    </div>
</body>
</html>

3,修改视图

@model test.Models.tb_name
@{
    ViewBag.Title = "Update";
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Modify</title>
    <style type="text/css">
        #tblist
        {
            border: 1px solid #0094ff;
            width: 600px;
            margin: 10px auto;
            border-collapse: collapse;
        }

            #tblist th, td
            {
                border: 1px solid #0094ff;
                padding: 10px;
            }
    </style>
</head>
<body>
    @using (Html.BeginForm("Update", "Index", FormMethod.Post))
    {
        <table id="tblist">
            <tr>
                <td colspan="2">修改:@Html.HiddenFor(a => a.Id)</td>
            </tr>
            <tr>
                <td>课程名称</td>
                <!--使用HtmlHepler,直接从model获取数据赋值给下拉框-->
                <td>@Html.DropDownListFor(a => a.Id, ViewBag.classList as IEnumerable<SelectListItem>)</td>
            </tr>
            <tr>
                <td>学生姓名</td>
                <!--使用HtmlHepler,直接从model获取数据赋值给文本框-->
                <td>@Html.TextBoxFor(a => a.uName)</td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="submit" value="确定修改">@Html.ActionLink("返回", "Index", "Index")</td>
            </tr>
        </table>
    }
</body>
</html>

4,控制器

public class IndexController : Controller
    {

        testEntities db = new testEntities();
        //
        // GET: /Index/

        public ActionResult Index()
        {
            testEntities db = new testEntities();
            List<Models.tb_name> list = (from d in db.tb_name select d).ToList();
            ViewData["DataList"] = list;
            return View();
        }

        /// 根据学生ID删除学生
        /// </summary>
        /// <param name="id">学生ID</param>
        /// <returns></returns>
        [HttpGet]
        public ActionResult Del(string id)
        {
            testEntities db = new testEntities();
            int ids = Convert.ToInt32(id);
            tb_name modelDel = new tb_name() { Id = ids };
            db.tb_name.Attach(modelDel);
            db.Entry<tb_name>(modelDel).State = System.Data.EntityState.Deleted;
            db.SaveChanges();
            return RedirectToAction("Index", "Index");
        }


        /// <summary>
        /// 根据学生编号修改学生
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        [HttpGet]
        public ActionResult Update(string id)
        {
            int ids = Convert.ToInt32(id);
            tb_name ts = (from a in db.tb_name where a.Id == ids select a).FirstOrDefault();
            IEnumerable<SelectListItem> listItem = (from c in db.tb_name select c).ToList().Select(c => new SelectListItem { Value = c.Id.ToString(), Text = c.uName });

            ViewBag.classList = listItem;
            return View(ts);

        }


        [HttpPost]
        /// <summary>
        /// 保存要修改的数据
        /// </summary>
        /// <param name="id">要修改的学生ID</param>
        /// <returns></returns>
        public ActionResult Update(tb_name ts)
        {
            DbEntityEntry<tb_name> entry = db.Entry<tb_name>(ts);
            entry.State = System.Data.EntityState.Unchanged;
            entry.Property(a => a.uName).IsModified = true;
            entry.Property(a => a.Id).IsModified = true;
            db.SaveChanges();
            return RedirectToAction("Index", "Index");
        }


        public ActionResult Add()
        {
            return View("Add");
        }

        /// <summary>
        /// 添加
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public ActionResult Add(tb_name student)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    EntityState statebefore = db.Entry(student).State;  //Detached 
                    db.tb_name.Add(student);
                    EntityState stateAdd = db.Entry(student).State; //Added
                    db.SaveChanges();
                    EntityState stateafter = db.Entry(student).State;//Unchanged
                    return RedirectToAction("Index");
                }
            }
            catch
            {
                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");


            }
            return View(student);
        }
    }

  

posted @ 2015-06-24 23:30  逊老头  阅读(226)  评论(0编辑  收藏  举报