小编lmt*_*tag的帖子

如何使用ASP.NET MVC和AngularJS路由?

我正在开发一个新的ASP.NET MVC和AngularJS应用程序,它旨在成为SPA的集合.我正在使用MVC区域概念来分隔每个SPA,然后我在每个MVC区域内使用AngularJS来创建SPA.

由于我是AngularJS的新手,并且未能找到关于将MVC和AngularJS路由相结合的答案,我想我会在这里发布我的问题,看看我是否能得到一些帮助.

我有标准的MVC路由设置,它为每个MVC区域提供服务.

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapMvcAttributeRoutes();
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
        routes.AppendTrailingSlash = true;
    }
Run Code Online (Sandbox Code Playgroud)

这工作正常,给我的URL如下:

http://servername/Application1/
http://servername/Application2/
Run Code Online (Sandbox Code Playgroud)

现在,在每个应用程序区域内,我正在尝试使用AngularJS路由,也使用$ locationProvider.html5Mode(true); 这样我就可以在每个区域内获得客户端路由,例如:

http://servername/Application1/view1
http://servername/Application1/view2
http://servername/Application2/view1/view1a
http://servername/Application2/view2/view2a
http://servername/Application2/view3
Run Code Online (Sandbox Code Playgroud)

这是我的Application1的AngularJS路由片段:

app1.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
    var viewBase = '/Areas/Application1/app/views/';
    $routeProvider
        .when('/Application1/view1', {
            controller: 'View1Controller',
            templateUrl: viewBase + 'view1.html'
        })
        .when('/Application2/view2', {
            controller: 'View2Controller',
            templateUrl: viewBase + 'view2.html'
        })
        .otherwise({ redirectTo: '/Application1/view1' }); …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc angularjs angularjs-routing

51
推荐指数
1
解决办法
6万
查看次数

在没有实体框架的情况下使用Breeze.js

我们正在尝试使用与John Papa的Pluralsight课程(例如,Web API,淘汰赛,jquery等)类似的技术和技术来开发SPA.但是,作为一家公司,我们决定不使用Entity Framework.我们想使用标准ADO.NET编写服务器端数据层.

现在,我们正试图将Breeze整合到我们的解决方案中.然而,即使Breeze网站说他们并没有与微软绑定,但是如果你不使用EF,你将会遇到与Breeze一起漫长而痛苦的旅程.

我们尝试评估NoDB Breeze示例,但是这个问题非常复杂且难以理解(并且弄清楚如何在服务器端的标准分层拱中实现它 - 一切看起来都是紧密耦合的,只是放在MVC/Web API项目的Models文件夹).

所以,我的问题是:

- 如果您不使用EF,Breeze是客户端数据库的错误选择吗?

- 如果Breeze可以很容易地在服务器端使用EF并且只使用直接的ADO.NET,那么是否有更好的示例或文档显示如何执行此操作?

- 鉴于我们的SPA实施非常类似于John Papa的SPA拱门,包括durandal,knockout,Web API等,除了(再次)我们没有使用EF,对我们来说有比Breeze更好的选择吗?

- 然后是SignalR ......我们计划稍后实施SignalR,Breeze是否可以与SignalR一起使用?

谢谢!

javascript entity-framework signalr single-page-application breeze

13
推荐指数
1
解决办法
4080
查看次数

LocalStorage无法在iPad和iPhone上运行

我在iPad和iPhone上遇到了HTML5 LocalStorage的问题.我开发了一个HTML5/CSS3/JavaScript(jQuery/jQuery Mobile)网站,我试图将几个数据存储到LocalStorage(只是几个小字符串).

当我通过简单地打开Safari并输入URL导航到iPad或iPhone上的网站时,我从Moderizr收到不支持localstorage的通知,因此,我的值不会保存在设备上.

但是,如果我使用"保存到主屏幕"选项,请在主屏幕上保存图标/链接到我的移动网站,关闭"常规"Safari,然后使用主屏幕图标打开应用程序,Moderizr告诉我本地存储可用,以及我的值是按预期编写和读取的.

所以,我很困惑.为什么在将链接保存到主屏幕后它仍然有效但如果我直接在Safari中键入URL则无效?我是否缺少一些技巧让它在两种情况下都能正常工作?

我已尝试使用iOS 5.1.1和6.而且,我的设置是基本默认设置.

谢谢.

iphone html5 local-storage ipad ios

12
推荐指数
1
解决办法
2万
查看次数

ASP.NET/IIS7.5编写日志文件不起作用(权限,UAC,配置,???)

我们无法将ASP.NET应用程序迁移到Windows Server 2008 R2 x64和IIS7.5.问题是我们的ASP.NET应用程序写入日志文件,并且没有写入这些日志文件.应用程序编写日志文件的唯一方法是,如果我以本地管理员用户身份登录服务器,或者如果我右键单击并以管理员身份运行IE,那么这两种方式对我们来说都不是可接受的解决方案.

我们的平台是:Windows Server 2008 R2 x64(UAC设置是默认设置)IIS7.5 ASP.NET 4.0(使用Windows身份验证和模拟,都在web.config中)

我们的应用安装到:D:[appname] [appnameWebSite](所有.aspx,.dll等文件都在这里)\ Log(应用程序尝试将日志文件写入此文件夹)

在服务器上:创建新的应用程序池(名称:[appname],.NET 4.0,托管管道模式:经典,标识:ApplicationPoolIdentity,加载用户配置文件:False,所有其他属性是默认值)创建指向D的IIS应用程序: appname] [appnameWebSite]并将其添加到新的App Pool(完全信任级别)在本地Administrators组中拥有域用户

使用上面列出的所有配置和默认设置,ASP.NET应用程序将不会写入日志文件.该应用似乎在浏览器中正常工作,但没有log.txt文件.

为了尝试"修复"这个问题,我们尝试了很多东西:Tried Application Pool设置:Managed Pipeline Mode:Integrated Tried Application Pool设置:Identity:NetworkService Tried Application Pool设置:Identity:LocalSystem Tried Application Pool设置:加载用户配置文件:True Gave Users组对文件系统的完全控制为我们的应用程序文件夹结构(尝试了appname文件夹,仅尝试了Log文件夹,仅尝试了appnameWebSite和Log文件夹)给IIS AppPool [appname](匹配新的App Pool)用户完全控制到文件我们的应用程序文件夹结构的系统(尝试了appname文件夹,只尝试了Log文件夹,只尝试了appnameWebSite和Log文件夹)

这些都没有帮助.同样,应用程序运行正常,只是没有创建日志文件.

如上所述,在应用程序运行时创建日志文件的唯一方法是,如果我们使用本地管理员帐户登录服务器(这是合理的,因为他是超级用户),或者我们以管理员身份运行IE并提升权限.

有什么建议?救命?有问题吗?

谢谢!

asp.net permissions uac application-pool iis-7.5

9
推荐指数
2
解决办法
3万
查看次数

使用Knockout使用多个字段/列和控件过滤ViewModel数据

我是KnockoutJS的新手,但到目前为止我还是喜欢它.我想要做的是使用窗体上的多个字段/列和控件来过滤我的viewmodel数据,但我不知道该怎么做.让我(希望)进一步解释.

我有一个viewmodel可观察数据数组,其中填充了来自后端数据库的JSON数据.此数据集包含多个我想要过滤的列,以便显示更改为仅显示所选项.我已经使用了ko.utils.arrayFilter和ko.utils.stringStartsWith的示例,如链接http://www.knockmeout.net/2011/04/utility-functions-in-knockoutjs.html所示.这非常适合作为搜索类型的过滤器 - 但仅限于我的数据表(viewmodel)中的一个字段.

第一个问题:有没有办法扩展此示例,以便在viewmodel的多个列中搜索文本框中键入的值,并返回显示结果?

但更重要的是,我的情况是我在窗体上有多个不同类型的控件(带有值列表的下拉列表,带有不同选项的单选按钮等),我需要根据所选的选项过滤完整的数据集在这些控件中.并且,控件的有效值与viewmodel数据集中的不同列/字段相关.

我希望这是有道理的.基本上,我们正在尝试替换具有相同功能的Windows窗体应用程序.也就是说,对于Windows窗体应用程序,所有过滤选项都为SQL选择构建一个大的where子句(例如,WHERE Name ='在下拉列表中选择的名称'和优先级IN(一个或多个选中的复选框选项)和视图=选择单选按钮等).然后将SQL查询发送到数据库,并将结果放入网格中.

那么,有什么方法可以让我在viewmodel(当然还有knockout)的多个字段上使用多个过滤器值来过滤和显示客户端的所有数据?或者我是否必须遵循与Windows应用程序类似的想法,并使用所选选项中的where子句重新查询数据库?

谢谢!

如果您需要更多细节,请告诉我(这有点难以书面解释).

knockout.js

9
推荐指数
1
解决办法
1万
查看次数

如何为ASP.NET MVC 4和ASP.NET Web API实现单独的项目

我正在开发一个大型ASP.NET MVC/Web API项目,并希望将控制器分离到他们自己的项目中(如本文所述http://msdn.microsoft.com/en-us/magazine/jj190803. aspx).不同之处在于我需要分离ASP.NET Web API控制器,而不是"普通"MVC控制器.

在我的解决方案中,我有两个独立的项目:

  • 一个用于提供HTML/CSS/JavaScript的ASP.NET MVC 4项目(注意我没有使用任何标准的MVC控制器,这个项目是所有客户端/浏览器端代码,它们对Web API进行jQuery/Ajax调用)
  • 一个ASP.NET Web API项目(这个项目只有ApiController,没有视图,HTML等,我仍然希望Web API项目在IIS中托管,而不是自托管)

无论如何,我已经看过其他帖子,这些并没有真正解释我的确切情况,而且我无法使这个解决方案正常工作.

如何将我的Web API控制器分解到他们自己的单独项目中,并在我单独的MVC项目中使用我的HTML/JavaScript代码?而且,如何从单独的MVC项目中的JavaScript/jQuery代码调用API的端点?

谢谢.

javascript asp.net-mvc jquery asp.net-web-api

6
推荐指数
1
解决办法
3489
查看次数

如何使用Lodash比较和找到两个复杂对象的差异?

我正在努力学习Lodash,因为我觉得它对我目前的项目有很大的帮助.但是,我有一个问题,我无法弄清楚如何解决,而且,因为我是一个Lodash新秀,我想我会发布一些东西,看看能不能得到一些指导.

我有两个复杂的对象(参见下面的结构) - 使用angular.copy(原始,复制)(我的应用程序显然是一个Angular应用程序).

复制后,两者兼而有之

original and copy =
{
    name: 'name',
    date: 'date',
    rows: [  // array of objects
        {
            // this is row 1
            columns: [  // array of objects
                {
                    // this is column 1
                    widgets: [  // array of objects
                        {
                            // this is 1 widget in this column
                            createdDate: 'createdDate1',
                            widgetName: 'widgetName1',
                            widgetParameters: [  // array of objects
                                { parameterName: 'parameterName1', parameterValue: 'parameterValue1' },
                                { parameterName: 'parameterName2', parameterValue: 'parameterValue2' },
                                { parameterName: 'parameterName3', parameterValue: 'parameterValue3' …
Run Code Online (Sandbox Code Playgroud)

javascript underscore.js angularjs lodash

5
推荐指数
1
解决办法
6159
查看次数

Visual Studio 2013,TFS和_references.js文件的问题

我们遇到Visual Studio 2013,TFS和_references.js文件的问题.

开发团队中有3人.我们在开发笔记本电脑上安装了以下产品:

  • 带有Update 2的Visual Studio 2013 Premium
  • 生产力Power Tools 2013 v12.0.30519.1
  • Web Essentials 2013 for Update 2 v2.2
  • 还有其他一些扩展,例如SideWaffle Template Pack.

我们的解决方案包括一个ASP.NET MVC项目以及其他几个类库项目,所有内容都被检入TFS.

我们遇到的问题是,只需打开解决方案和项目,即使没有对任何内容进行任何明确更改,_references.js文件也会自动检出.然后,当其中一个团队成员签出_references.js文件而其他团队成员只想打开解决方案和项目时,VS会尝试签出_references.js但不能,因为它已经签出.然后,VS会抛出无数个消息框,并显示无法检出文件的错误.解决它的唯一方法是终止VS进程,让签出文件的人检查它,然后所有团队成员都可以继续他们的工作.

我们无法弄清楚为什么会这样,以及如何解决它.这是VS 2013的事吗?是否有一些设置阻止VS自动检出?它是Web Essentials的问题吗?基本上,我们如何才能阻止这种行为,因为当一个人需要检出该文件时,会有客户端开发时间,这不能阻止其他团队成员工作.

谢谢!

javascript tfs visual-studio visual-studio-2013

4
推荐指数
1
解决办法
2286
查看次数