我正在开发一个新的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) 我们正在尝试使用与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
我在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.而且,我的设置是基本默认设置.
谢谢.
我们无法将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并提升权限.
有什么建议?救命?有问题吗?
谢谢!
我是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子句重新查询数据库?
谢谢!
如果您需要更多细节,请告诉我(这有点难以书面解释).
我正在开发一个大型ASP.NET MVC/Web API项目,并希望将控制器分离到他们自己的项目中(如本文所述http://msdn.microsoft.com/en-us/magazine/jj190803. aspx).不同之处在于我需要分离ASP.NET Web API控制器,而不是"普通"MVC控制器.
在我的解决方案中,我有两个独立的项目:
无论如何,我已经看过其他帖子,这些并没有真正解释我的确切情况,而且我无法使这个解决方案正常工作.
如何将我的Web API控制器分解到他们自己的单独项目中,并在我单独的MVC项目中使用我的HTML/JavaScript代码?而且,如何从单独的MVC项目中的JavaScript/jQuery代码调用API的端点?
谢谢.
我正在努力学习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) 我们遇到Visual Studio 2013,TFS和_references.js文件的问题.
开发团队中有3人.我们在开发笔记本电脑上安装了以下产品:
我们的解决方案包括一个ASP.NET MVC项目以及其他几个类库项目,所有内容都被检入TFS.
我们遇到的问题是,只需打开解决方案和项目,即使没有对任何内容进行任何明确更改,_references.js文件也会自动检出.然后,当其中一个团队成员签出_references.js文件而其他团队成员只想打开解决方案和项目时,VS会尝试签出_references.js但不能,因为它已经签出.然后,VS会抛出无数个消息框,并显示无法检出文件的错误.解决它的唯一方法是终止VS进程,让签出文件的人检查它,然后所有团队成员都可以继续他们的工作.
我们无法弄清楚为什么会这样,以及如何解决它.这是VS 2013的事吗?是否有一些设置阻止VS自动检出?它是Web Essentials的问题吗?基本上,我们如何才能阻止这种行为,因为当一个人需要检出该文件时,会有客户端开发时间,这不能阻止其他团队成员工作.
谢谢!
javascript ×4
angularjs ×2
asp.net-mvc ×2
asp.net ×1
breeze ×1
html5 ×1
iis-7.5 ×1
ios ×1
ipad ×1
iphone ×1
jquery ×1
knockout.js ×1
lodash ×1
permissions ×1
signalr ×1
tfs ×1
uac ×1