006. MVC的第一个增删改查弱类型和强类型

项目图:

弱类型的前台主要代码

@{
    Layout = null;
}
@*使用model要添加对其的引用*@
@model  MvcCRUDDemo.OrderInfo 
<!DOCTYPE html>
@*@inherits System.Web.Mvc.ViewPage<OrderInfo>*@
@*<%@ page Language="C#" Inherits="System.Web.Mvc.ViewPage<MvcCRUDDemo.Model.OrderInfo>%>*@
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Show</title>
</head>
<body>
    <div> 
        @{
            var ordreInfo = ViewData["OrderInfo"] as OrderInfo;

            //var orderInfo1 = ViewData.Model.Id;
        }
        访问此页面的时候要使用id=1,这样的形式访问, 比如<br />
        http://localhost:10463/OrderInfo/ShowOrderInfo?id=1 <br />
        或者<br />
        http://localhost:10463/OrderInfo/ShowOrderInfo/1 这种方式需要路由支持<br />
        以上两种传值方式都可以使用, 其中比较推荐第二种, 注意第二种斜线1, 这种是由路由决定的, 路由里面有个{id}, 这里也必须是对id进行传递值
        @*<table border="1">
            <tr><td>编号</td><td>书名</td><td>作者</td></tr>
            <tr><td>@(ordreInfo.Id)</td><td>@(ordreInfo.BookName)</td><td>@(ordreInfo.BookAuth)</td></tr>
        </table>*@
        我是弱类型表格
        <table border="1">
            <tr><td>编号</td><td>@(ordreInfo.Id)</td></tr>
            <tr><td>书名</td><td>@(ordreInfo.BookName)</td></tr>
            <tr><td>作者</td><td>@(ordreInfo.BookAuth)</td></tr>
        </table>

我是强类型出来的表格<br /> 在aspx中, 使用Model是需要添加继承的<br /> //如果后台返回List<ordreInfo>那么前台这样的方式就不能直接使用了, 需要循环了 @*<table border="1"> <tr><td>编号</td><td>@(Model.Id)</td></tr> <tr><td>书名</td><td>@(Model.BookName)</td></tr> <tr><td>作者</td><td>@(Model.BookAuth)</td></tr> </table>*@ <br /> @(Html.TextBoxFor<OrderInfo,string >(order=>order.BookName)) 这里需要添加引@model MvcCRUDDemo.OrderInfo <br /> <br/>
    这里有个For就表示要出入Lambda表达式, 如果不加For表示只需要传入一个字符串即可 <br />这是一个强类型出来的TextBox, 单个列表 <br /> 自动赋值必须使用htmlHelper标签才可以, 手写的是不行的<br /> @(Html.TextBox("Id"))<br /> @(Html.TextBox("BookAuth")) <br />即使使用list, 它这里也可以取到对应的值 </div> </body> </html>

 

强类型主要代码, 前台生成的代码基本没有动过

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcCRUDDemo.Controllers
{
    public class OrderInfoController : Controller
    {
        // GET: OrderInfo
        MyGroupDBEntities dbcontext = new MyGroupDBEntities();
        public ActionResult Index()
        {
            //指定一个Model
            ViewData.Model= dbcontext.OrderInfo.AsEnumerable();
            return View();
        }

        // GET: OrderInfo/Details/5
        public ActionResult Details(int id)
        {
            ViewData.Model = dbcontext.OrderInfo.Find(id);//推荐使用这一种
            //ViewData.Model = dbcontext.OrderInfo.Where<OrderInfo>(o => o.Id == id).FirstOrDefault();
            return View();
        }

        // GET: OrderInfo/Create
        public ActionResult Create()
        {
            return View();
        }

        // POST: OrderInfo/Create
        [HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                if (collection.Count > 0)
                {
                    OrderInfo orderInfo = dbcontext.OrderInfo.Find(collection["id"]);
                    dbcontext.OrderInfo.Add(orderInfo);
                    dbcontext.SaveChanges();
                }

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        // GET: OrderInfo/Edit/5
        public ActionResult Edit(int id)
        {
            return View();
        }

        // POST: OrderInfo/Edit/5
        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                OrderInfo orderInfo  = dbcontext.OrderInfo.Find(id);
                orderInfo.BookAuth = collection["BookAuth"];
                orderInfo.BookName = collection["BookName"];
                //orderInfo.UserInfo_Id =int.Parse(collection["UserInfo_Id"]); 
                dbcontext.OrderInfo.Add(orderInfo);
                dbcontext.SaveChanges();
                return RedirectToAction("Index");
            }
            catch (Exception e)
            {
              //s  return Content(e.ToString());
                return View();
            }
        }

        // GET: OrderInfo/Delete/5
        public ActionResult Delete(int id)
        {
            ViewData.Model = dbcontext.OrderInfo.Find(id);  
            return View();
        }

        // POST: OrderInfo/Delete/5
        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                OrderInfo orderInfo = dbcontext.OrderInfo.Find(id);
                dbcontext.Entry(orderInfo).State = System.Data.Entity.EntityState.Deleted;
                dbcontext.SaveChanges(); 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
    }
}

 

posted on 2017-02-15 17:00  印子  阅读(155)  评论(0)    收藏  举报

导航