分享

NopComerce入门,创建项目

 阅读360度 2015-12-16

1.  首次运行具备的条件

.Net Framework 最新版本,安装MSSQL数据库配置好相应用户,连接信息

运行程序,按照要求录入信息,进行数据库初始化

2.  数据库连接文件存放位置

Nop.Web-App_Data中的Settings.txt

3.  部署(发布)系统

为防止每次发布都出现安装界面,发布系统后,将Settings.txtInstalledPlugins.txt

这两个文件添加到Nop.Web-App_Data中将这两个文件发布时包含在项目内

4.  Nop实践


添加新的Domain.Model时建立ViewModel时添加Mapper映射需要映射

         Nop.Admin.Infrastructure-AutoMapperStartupTask

 

5.  添加新首页(需要修改路由)

Nop.web-view添加页面nop.web-controller添加Action

         Nop.web-Global修改默认路由

         Nop.web-Infrastructure-RouterProvider.cs修改HomePage路由

6.  添加系统后台管理功能菜单

添加系统后台管理功能菜单

         Nop.Admin-SiteMap.config注意命名空间

                   注意根菜单PermissionNames的写法,防止菜单无法显示

直接添加权限数据库

permissionrecord

permissionrecord_role_mapping

初始化安装时自动写入

                   Nop.Services.Security-StandardPermissionProvider.cs添加权限,并建立角色权限关系

                   Nop.Web-App_Data-Localization-defaultResources.nopres.xml

7.  添加新的Service需要注册 (构造方法自动装载)

         Nop.web.Framework-DipendencyRegistrar.cs

8.  添加AdminAreaSettings

需要后台-商城设置-设置-所有设置里面添加此设置

9.  UIView路由更改

//define this routes to use in UI views (incase if you want to customize some of them later)

Nop.web-Infrastructure-GenericUrlRouteProvider.cs修改

获取RouteData请求中的参数可以自己定义,放入路由

         Nop.Web.Framework.Seo-GenericPathRoute

         <ahref="@Url.HttpRouteUrl("xxxx",new{SeName=Model.name})">进入店铺</a>

10.        手动升级3.6(addAntiForgeryToken is not defined)

addAntiForgeryToken将admin-common.js中添加下面方法

// CSRF (XSRF) security

function addAntiForgeryToken(data) {

   //if the object is undefined, create a new one.

   if (!data) {

       data = {};

    }

   //add token

   var tokenInput = $('input[name=__RequestVerificationToken]');

   if (tokenInput.length) {

       data.__RequestVerificationToken = tokenInput.val();

    }

   return data;

};

11.        [error]:从DateTime2转换超出范围 将数据库类型改为DateTime2

12.        Nop邮件服务器配置

         邮件地址和密码必须正确,请到邮箱官网测试

         邮箱-设置中启用smtp

         用户名为邮箱账号@号前面部分

         如果对已有邮箱进行编辑请点击修改密码,在点击保存

         SSL,证书不勾选


13.        NopCommerce IE浏览器模式设置

后台管理-商城配置-设置-所有设置
commonsettings.renderxuacompatible设置为True
commonsettings.xuacompatiblevalue设置为IE=edge

14.        其它

MVC布局页面引用说明

         Controller-Action返回ActionResult为View()时会带有布局,PartailView()不带布局

         View-页面中布局引用指定为null时清空所有布局

 

添加Nop.Admin.controller/view/validate/viewmodel注意命名空间

         View中ViewModel如果没有完整命名空间必须在View文件夹中的Web.config中添加viewmodel命名空间

 

 

城市定位(百度地图):

         <scripttype="text/javascript">

       var val;

       function loadJScript() {

           var script = document.createElement("script");

           script.type = "text/javascript";

           script.src ="http://api.map.baidu.com/api?v=2.0&ak=2U5HP2MpzMphq85QFySKGpMQ&callback=init";

            document.body.appendChild(script);

       }

       function init() {

           var myCity = new BMap.LocalCity();

           myCity.get(myFun);

       }

       function myFun(result) {

           var cityName = result.name;

           //window.location = "/Home/Index/"+cityName;

       }

       window.onload = loadJScript;

</script>

当前位置定位(百度地图):

         vargeolocation = new BMap.Geolocation();

       geolocation.getCurrentPosition(function(r){

       if(this.getStatus() == BMAP_STATUS_SUCCESS){

       var mk = new BMap.Marker(r.point);

       var myGeo = new BMap.Geocoder();

       myGeo.getLocation(new BMap.Point(r.point.lng,r.point.lat), function(rs){

        // console.log(MyApp.app.mapCenter);

         console.log(rs);

         var addComp = rs.addressComponents;

         alert(addComp.province + addComp.city + addComp.district +addComp.street + addComp.streetNumber);

     });      

       }

       else {

           alert('未知地址('+this.getStatus()+ ')');

       }

});

 

简单的AJAX请求(JQuery)Action

         functionInitCity(cityName) {

           var postData = {

                cityName: cityName

           };

           $.ajax({

                cache: false,

                type: "POST",

                url:"@(Url.Action("InitCity", "Home"))",

                data: postData,

                complete: function (data) {

           },

           error: function(xhr, ajaxOptions, thrownError) {

                alert(thrownError);

           },

           traditional: true

       });

        return false;

       }

Nopcomerce Kendo ui 汉化(中文语言设置)

在Libraries\Nop.Core\CommonHelper.cs中
SetTelerikCulture()

 


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多