Asp.Net、MVC4、Mvc.Ext.Net项目实践(二)

在前期搭建框架的时候,大约花了一个月的时间来解决技术难点问题。刚才对这个mvc.ext.net什么都不了解,都是从头开始学习,包括mvc4的语法,mvc与ext.net的结合使用。刚开始一直在写一个实例就是树的生成,其实弄明白以后非常简单,先贴出图片(我还是用实例的吧)

我使用的是异步加载,上一篇的第三张图左侧树实现方式是一样的。忘记说了我用的是ext.net2.1.1版本的,因为这个版本可以破解,还可以修改源代码。先放上这棵树的源代码吧。

 1 @{
 2     ViewBag.Title = "TreePanel using DirectMethod";
 3     Layout = "~/Views/Shared/_BaseLayout.cshtml";
 4 }
 5
 6 @section headtag
 7 {
 8     <script>
 9         var nodeLoad = function (store, operation, options) {
10             var node = operation.node;
11
12             App.direct.NodeLoad(node.getId(), {
13                 success : function (result) {
14                     node.set(‘loading‘, false);
15                     node.set(‘loaded‘, true);
16                     node.appendChild(result);
17                     node.expand();
18                 },
19
20                 failure : function (errorMsg) {
21                     Ext.Msg.alert(‘Failure‘, errorMsg);
22                 }
23             });
24
25             return false;
26         };
27     </script>
28 }
29
30 @section example
31 {
32     <h1>TreePanel using DirectMethod</h1>
33     @(
34         Html.X().TreePanel()
35             .Title("Tree")
36             .Width(300)
37             .Height(450)
38             .Border(false)
39             .Root(Html.X().Node().NodeID("0").Text("Root"))
40             .Listeners(l => { l.BeforeLoad.Fn = "nodeLoad"; })
41     )
42 }

前端

 1 [DirectController(AreaName = "TreePanel_Loaders", GenerateProxyForOtherControllers = false, IDMode = DirectMethodProxyIDMode.None)]
 2     public class Direct_MethodController : Controller
 3     {
 4         public ActionResult Index()
 5         {
 6             return View();
 7         }
 8
 9         [DirectMethod]
10         public ActionResult NodeLoad(string node)
11         {
12             NodeCollection nodes = new Ext.Net.NodeCollection();
13
14             if (!string.IsNullOrEmpty(node))
15             {
16                 for (int i = 1; i < 6; i++)
17                 {
18                     Node asyncNode = new Node();
19                     asyncNode.Text = node + i;
20                     asyncNode.NodeID = node + i;
21                     nodes.Add(asyncNode);
22                 }
23
24                 for (int i = 6; i < 11; i++)
25                 {
26                     Node treeNode = new Node();
27                     treeNode.Text = node + i;
28                     treeNode.NodeID = node + i;
29                     treeNode.Leaf = true;
30                     nodes.Add(treeNode);
31                 }
32             }
33
34             return this.Direct(nodes);
35         }
36     }

后台

就是这点代码我自己写的时候写了快一个月(我是说模仿)因为中间出现一个问题,在点击节点的加号时总是没有任何的反应,最终找到了原因在这里贴出来以免继续犯错。

1.首先类前面的DirectController必须要加,我就是因为这个原因,我终于明白公司为什么要招有经验的人,效率和成本

2.如果使用前端请求后台方法在方法上需要添加[DirectMethod],类似 App.direct.NodeLoad的异步请求。在这里我遇到一个问题,如果我想使用同步官网上面说使用async设置为false,但是总是不行,不起任何作用,没办法我只能使用jquery中的ajax方法

3.App.direct这个调用方法的命名空间,App.direct这是系统默认的命名空间,如果要想修改这个命名空间,把Controller对应的方法上的属性DirectMethod修改成 [DirectMethod(Namespace="")]就可以了

4.在view中必须要加上@X.ResourceManager(),如果不在系统在运行时出错。

在做这棵树的时候还遇到了各种各样的问题有时候只能用间接的方式来解决了。如果有在使用这个框架的码农我很乐意和大家交流.757966892这是我的q

时间: 2024-10-21 03:27:44

Asp.Net、MVC4、Mvc.Ext.Net项目实践(二)的相关文章

3、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发之——用户登录

最近由于项目赶着上线,一直没时间接着写博客,今天终于空出了时间.声名:我不是专业美工,所以界面问题,希望大家不要拍砖.登录界面如下: 在ASP.NET MVC中,要新增一个功能,我们首先要添加一个控制器,AccountController.cs,添加方法:右键单击Controllers文件夹, /// <summary> /// 登录页面 /// </summary> /// <returns></returns> public ActionResult I

4、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发之——后台管理界面

这一章节比较简单,我就直接贴代码了,后台管理登陆界面如下: 对应的控制器HomeController.cs,代码如下: using YKT.Model; using YKT.Common; using YKT.BLL; using YKT.Common.HtmlHelpers; using YKT.Common.Functions; using Microsoft.Practices.Unity; using YKT.IBLL; namespace YKT.Controllers { publi

5、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发之——使用datagrid做报表统计

需要说明一点:数据库访问我使用的是EF框架,但是在报表统计着一块由于使用到了动态表,即根据每一天单独生成了一张数据表,所以不好使用EF进行预先添加,于是我在数据库访问层里面封装了两套数据库访问框架,一个就是EF,一个就是传统的ADO.NET.当设计到使用动态表时,我就调用用ADO.NET进行数据库访问操作了. 先看下View,这里我使用的是jquery easyUI里面的datagrid来做的报表.如下: 单击选中日报: 年报如下: @model YKT.Model.SubCompanyRepo

ASP.NET CORE MVC 2.0 项目中引用第三方DLL报错的解决办法 - InvalidOperationException: Cannot find compilation library location for package

目前在学习ASP.NET CORE MVC中,今天看到微软在ASP.NET CORE MVC 2.0中又恢复了允许开发人员引用第三方DLL程序集的功能,感到甚是高兴!于是我急忙写了个Demo想试试,我的项目结构如下: 可以看到解决方案中就两个项目,AspNetCoreWebApp就是一个ASP.NET CORE MVC 2.0的项目,而MyNetCoreLib是一个.Net Core 2.0的类库项目,为了体现AspNetCoreWebApp是通过程序集来引用MyNetCoreLib的,我还在解

使用 ASP.NET Core MVC 创建 Web API(二)

原文:使用 ASP.NET Core MVC 创建 Web API(二) 使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 六.添加数据库上下文 数据库上下文是使用Entity Framework Core功能的主类. 此类由 Microsoft.EntityFrameworkCore.DbContext 类派生而来. 1) 在Visual Studio 2017的“解决方案资源管理器”中,右键单击“Models”文

asp.net core mvc和angular项目的一些问题

最近公司布置任务,用asp.net core mvc和angular改写原来的一个用Silverlight做的项目.从来没搞过,找了两本书看了一天,又看了一天代码,大致心里有底了,就开始动手.没想到一上来就碰到了头痛的问题. 首先是第一次调试后,修改了typescript,却不会自动编译.花了不少功夫才明白,原来不要用缺省的IISExpress,另外建了个调试profile,关键是类型设为Project,这下就方便了.F5调试后,随时修改template或者typescript,马上就自动重新编

asp.net core MVC 过滤器之ActionFilter过滤器(二)

本系类将会讲解asp.net core MVC中的内置过滤器的使用,将分为以下章节 asp.net core MVC 过滤器之ExceptionFilter过滤器(一) asp.net core MVC 过滤器之ActionFilter过滤器(二) asp.net core MVC 过滤器之ResultFilter过滤器(三) asp.net core MVC 过滤器之ResourceFilter过滤器(四) asp.net core MVC 过滤器之AuthorizationFilter过滤器

VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发(转载)

http://blog.csdn.net/zouyujie1127/article/details/22084671

Ext.js项目(二)

人事管理模块: 1.机构管理 2.部门管理 3.人员管理 一:用例图   二:数据表分析 三:需要涉及到的类: 需要涉及到的类:(完成一个模块时只需要修改包含:(----)即可)ExtOA.Ent->BranchInfoBaseExtOA.Ent->BranchInfo(----)ExtOA.IDal->IBranchInfoDR(----)ExtOA.SqlServerDal ->BranchInfoDRBaseExtOA.SqlServerDal ->BranchInfo