学用MVC4+EF+Razor做网站:序

转眼之间2013年过去了,花费了大半年在时间,终于把一个钢铁网电子交易平台做好了,这是一套完整的电子商城系统,完全基于ASP.NET MVC+EF三层构架,开发环境为Visual Studio 2012 ,兼容各种主流浏览器!

后台功能包含了:

一 用户管理:注册用户管理,新注册用户审核,主账号子账号,管理员管理,角色权限查看 

二 文章管理:公告信息,帮助中心,关于我们,招聘信息,免责声明等 

三 基础设置: 产品类别,材质管理,规格管理,区域管理,厂商管理,仓库管理,销售状态管理,产品管理 

四 政策管理(用于对购物总价的计算):仓库政策管理,产品政策管理,月结政策管理

五 订单管理 包括订单,提单,返单  六 库存管理

前台包含了: 用户申请,用户资料完善,后台文章在展示,购物车,购物返利,在线下订单等功能

系统还开发了基于Windows Form的Excel导入数据库的用户界面,图片上传,产品价格自动运算,打印等很多智能化功能。

部分效果图如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 为了对C#  ASP.NET MVC4的达到如火纯青的地步,就把这个项目重头做一遍,加深下理解:

首先打开VS2012,新建项目,将网站命名为MvcGangtie:

 

 下一步:

我们会看到界面如下:

 

接下来我们做一些准备工作:

删除App_Start文件夹下的FilterConfig.cs WebApiConfig.cs, AuthConfig.cs;

将RouteConfig.cs修改如下:

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

namespace MvcGangTie
{
    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                 "Default",
                "{controller}/{action}/{id}",
                 new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                  //因为在Area中也注册了一个与根目录下同名的OrderController所以要在下面加上Router的命名空间!不然可能会出错:
                // 找到多个与名为“Order”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此情况。如果是这样,请通过调用含有“namespaces”参数的“MapRoute”方法的重载来注册此路由。
                //“Order”请求找到下列匹配的控制器:
                //MvcGangTie.Areas.Mana.Controllers.OrderController
                //MvcGangTie.Controllers.OrderController
                new string[] { "MvcGangTie.Controllers" }
            );
        }
    }
}

 

删掉Filters文件夹;

将Global.asax 删掉多余的Application_Start()中在内容修改为:

  protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

           
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }

 

 

由于这个平台包含前台部分和后台部分,我们就在项目中添加一个名为 Mana 在区域

 

 ManaAreaRegistration.cs 修改如下:

using System.Web.Mvc;

namespace MvcGangTie.Areas.Mana
{
    public class ManaAreaRegistration : AreaRegistration
    {
        public override string AreaName
        {
            get
            {
                return "Mana";
            }
        }

        public override void RegisterArea(AreaRegistrationContext context)
        {
            context.MapRoute(
                "Mana_default",
                "Mana/{controller}/{action}/{id}",
                new { controller = "Index", action = "Index", id = UrlParameter.Optional },
                 //因为在Area中也注册了一个与根目录下同名的OrderController所以要在下面加上Router的命名空间!不然可能会出错:
                // 找到多个与名为“Order”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此情况。如果是这样,请通过调用含有“namespaces”参数的“MapRoute”方法的重载来注册此路由。
                //“Order”请求找到下列匹配的控制器:
                //MvcGangTie.Areas.Mana.Controllers.OrderController
                //MvcGangTie.Controllers.OrderController
                new string[] { "MvcGangTie.Areas.Mana.Controllers" }
            );
        }
    }
}


将 web.config 数据库连接做如下修改:

  <connectionStrings>
    <add name="ProwebEntities" connectionString="Data Source=|DataDirectory|MvcGangTie.sdf" providerName="System.Data.SqlServerCe.4.0"/>
  </connectionStrings>


准备工作先做到这里,接下来就正式开始。。。。。。。。。。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。