一个基于标准的ASP.NET MVC2.0 + LINQ 的一个项目案例

ylbtech- ASP.NET MVC:一个基于标准的ASP.NET MVC2.0 + LINQ 的一个项目案例

功能描述:一个基于标准的ASP.NET MVC2.0 + LINQ 的一个项目.主要功能有:用户登录,产品的操作,商品展示,添加产品,修改商品,删除商品. 

2,TechnologyAndTheEnvironment(技术与环境)

操作系统:

windows

开发语言:

C#

开发框架:

ASP.NET MVC 2.0

数据库:

SQL Server

开发软件:

Microsoft Visual Studio 2010

 开发技术

 ASP.NET MVC +LINQ

3,DatabaseDesign(数据库设计)
View Code
use master
go
if exists(select * from sysdatabases where name='db1')
begin
    drop database db1
end
go
create database DB1
go
use DB1
go
create table [User]
(
    Username varchar(20) primary key,
    Userpass varchar(20)
)

create table [Product]
(
    ProductID int identity primary key,
    ProductName varchar(20),
    UnitPrice numeric(7,2),
    Type varchar(10) check(type in('电器','饮料'))
)

insert into [user](username,userpass) values('admin','123')
insert into product(productname,unitprice,type) values('可乐',1.7,'饮料')
insert into product(productname,unitprice,type) values('ipod',6000,'电器')
insert into product(productname,unitprice,type) values('MAC',8000,'电器')
insert into product(productname,unitprice,type) values('雪碧',2.1,'饮料')


select * from [user]
select * from product



--select count(*) from  [user]  where username=@username and userpass=@userpass
4,FeatureScreenshots(功能截图)

 4.1,前台

4.1.1 用户登录(/Views/Account/SignIn.aspx)

login
4.1.2 商品展示(/Views/Product/ShowProduct.aspx)

Show Products
4.1.3 添加商品(/Views/Product/Update.aspx)

Add Product
4.1.4 修改商品(/Views/Product/Update.aspx)

Update Product
4.1.5 删除商品(/Views/Product/ShowProduct.aspx)     

Delete Product    

/Views/User/SignIn.aspx

View Code
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    SignIn
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <h2>
        SignIn</h2>
    <div>
        <%Html.BeginForm("Check", "User", FormMethod.Post); %>
        用户名:<%=Html.TextBox("txtUsername") %><br />
        密 码:<%=Html.Password("txtUserpass") %><br />
        <input type="submit" value="登录" />
        <%Html.EndForm(); %>
    </div>
</asp:Content>

/Views/Product/ShowProduct.aspx

View Code
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<%@ Import Namespace="MvcApplication4.Models" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    ShowProduct
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <h2>ShowProduct</h2>
    
   <table border="1" width="80%">
    <tr>
        <td>编号</td>
        <td>名称</td>
        <td>单价</td>
        <td>修改</td>
        <td>删除</td>
    </tr>
    <%
        IQueryable<Product> products = (IQueryable<Product>)ViewData["products"];

        foreach (Product prod in products)
        {
         %>
    <tr>
        <td><%=prod.ProductID %></td>
        <td><%=prod.ProductName %></td>
        <td><%=prod.UnitPrice %></td>
        <td><%=Html.ActionLink("修改", "PreUpdate", new Product{  ProductID=prod.ProductID, ProductName=prod.ProductName,  UnitPrice=prod.UnitPrice, Type=prod.Type})%></td>
        <td><%=Html.ActionLink("删除","Delete",new{prodID=prod.ProductID}) %></td>
    </tr>
    <%
        }
             %>
   </table>
   <div>
        <a href="/Product/Add">增加一条数据</a>
   </div>
</asp:Content>

/Views/Product/Update.aspx

View Code
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<%@ Import Namespace="MvcApplication4.Models" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Update
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <h2>Update/Insert</h2>
<div>

<%Html.BeginForm("Save", "Product", FormMethod.Post); %>
    <%
        
        SelectList slType = (SelectList)ViewData["slType"];
        
        if (ViewData["product"] != null)
        {
            Product prod = (Product)ViewData["product"];
    %>
    编号:默认<%=Html.Hidden("hdProductID", prod.ProductID)%><br />
    名称:<%=Html.TextBox("txtProductName", prod.ProductName)%><br />
    单价:<%=Html.TextBox("txtUnitPrice", prod.UnitPrice)%><br />
    类别:<%=Html.DropDownList("ddlType",slType) %><br />
    <input type="submit" value="提交" />
    <%
        }
    else
    {
    %>
    编号:默认<br />
    名称:<%=Html.TextBox("txtProductName")%><br />
    单价:<%=Html.TextBox("txtUnitPrice")%><br />
    类别:<%=Html.DropDownList("ddlType",slType) %><br />
    <input type="submit" value="提交" />
    <%
        }
    %>
    <%Html.EndForm(); %>
</div>
</asp:Content>

/Controllers/UserController.cs

View Code
using System.Linq;
using System.Web.Mvc;

using MvcApplication4.Models;
namespace MvcApplication4.Controllers
{
    public class UserController : Controller
    {
        //
        // GET: /User/
        DB1DataContext db1 = new DB1DataContext();

       // IUser dal = DataAccess.CreateUser();
        public ActionResult Index()
        {
            return View("SignIn");
        }


        //登录验证
        public ActionResult Check()
        {

            string name = Request.Form["txtUsername"];
            string pass = Request.Form["txtUserpass"];

            var query = (from u in db1.User where u.Username == name where u.Userpass == pass select u).Count();

            if (query>0)
            {

                //登陆成功
                return RedirectToAction("Index", "Product");
            }
            else
            {

                //登录失败
                return RedirectToAction("Fail");
            }
            
        }

        //登录失败页面
        public ActionResult Fail()
        {

            return View("Fail");
        }

    }
}

/Controllers/ProductController.cs

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


using MvcApplication4.Models;
namespace MvcApplication4.Controllers
{
    public class ProductController : Controller
    {
        //
        // GET: /Product/

        DB1DataContext db1 = new DB1DataContext();

        public ActionResult Index()
        {

            System.Linq.IQueryable<Product> products = db1.Product;
            ViewData["products"] = products;

            return View("ShowProduct");
        }


        public ActionResult Delete(int prodID)
        {

            var products = from p in db1.Product 
                           where p.ProductID == prodID 
                           select p;
            db1.Product.DeleteAllOnSubmit(products);

            return Index();
        }

        public ActionResult PreUpdate(Product prod)
        {

            ViewData["product"] = prod;

            IList<SelectListItem> sliType = new List<SelectListItem>() { 
                 new SelectListItem{ Text="电器", Value="电器"},
                new SelectListItem{ Text="饮料", Value="饮料"}
            };
            SelectList slType = new SelectList(sliType, "Value", "Text", prod.Type);
            ViewData["slType"] = slType;

            return View("Update");
        }

        public ActionResult Add()
        {

            IList<SelectListItem> sliType = new List<SelectListItem>() { 
                 new SelectListItem{ Text="电器", Value="电器"},
                new SelectListItem{ Text="饮料", Value="饮料"}
            };
            SelectList slType = new SelectList(sliType, "Value", "Text","电器");
            ViewData["slType"] = slType;
            return View("Update");
        }

        public ActionResult Save()
        {

            if(!string.IsNullOrEmpty(Request.Form["hdProductID"]))
            {
                //更新一条数据
                int productID=Convert.ToInt32(Request.Form["hdProductID"]);
                Product product=db1.Product.Single(p=>p.ProductID==productID);
                product.ProductName = Request.Form["txtProductName"];
                product.UnitPrice = Convert.ToDecimal(Request.Form["txtUnitPrice"]);
                product.Type = Request.Form["ddlType"];
                db1.SubmitChanges();
            }
            else
            {
                //曾加一条数据
                Product product = new Product();
                product.ProductName = Request.Form["txtProductName"];
                product.UnitPrice = Convert.ToDecimal(Request.Form["txtUnitPrice"]);
                product.Type = Request.Form["ddlType"];
                db1.Product.InsertOnSubmit(product);
                db1.SubmitChanges();
            }

            return Index();
        }
    }
}
6,Sample|Explain FreeDownload(示例|讲解案例下载)

https://files.cnblogs.com/ylbtech/WebForm-ASP.NET-MVC_LINQ.rar

百度网盘  http://pan.baidu.com/s/1i49zn73

请点击“MVC+LINQ”

warn 作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/ylbtech/p/3029656.html