小编Rya*_*yan的帖子

将UTC DateTime传递给Web API HttpGet方法会产生本地时间

我正在尝试将UTC日期作为查询字符串参数传递给Web API方法.URL看起来像

/api/order?endDate=2014-04-01T00:00:00Z&zoneId=4
Run Code Online (Sandbox Code Playgroud)

方法的签名看起来像

[HttpGet]
public object Index(int zoneId, DateTime? endDate = null)
Run Code Online (Sandbox Code Playgroud)

日期即将到来,31/03/2014 8:00:00 PM但我希望它可以进入01/04/2014 12:00:00 AM

JsonFormatter.SerializerSettings看起来像这样

new JsonSerializerSettings
{
    ContractResolver = new CamelCasePropertyNamesContractResolver(),
    DateTimeZoneHandling = DateTimeZoneHandling.Utc,
    DateFormatHandling = DateFormatHandling.IsoDateFormat
};
Run Code Online (Sandbox Code Playgroud)

编辑#1:我注意到,当我发布2014-04-01T00:00:00Z它时,它将序列化为C#中的UTC DateTime类型.然而,我发现了一个endDate.Value.ToUniversalTime()改变它的工作,虽然我觉得奇怪的是它如何用于POST而不是GET.

datetime json model-binding asp.net-web-api

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

大规模的KnockoutJS应用程序架构

我喜欢KnockoutJS,但一直在努力找出用它构建大规模Javascript应用程序的最佳方法.

现在我处理代码的方式是使用根视图模型构建,该模型通常从主页面级别开始,然后在其上进行扩展.我只ko.applyBindings()在主视图上.这是我的示例代码:

var companyNamespace = {};

// Master page. (a.k.a _Layout.cshtml)
(function(masterModule, $, ko, window, document, undefined) {
    var private = "test";

    masterModule.somePublicMethod = function() {};
    masterModule.viewModel = function() {
        this.stuff = ko.observable();
    };
}(companyNamespace.masterModule = companyNamespace.masterModule || {}, jQuery, ko, window, document));

// Index.cshtml.
(function(subModule, $, ko, window, document, undefined) {
    var private = "test";

    subModule.somePublicMethod = function() {};
    subModule.viewModel = function() {
        this.stuff = ko.observable();
    };

    $(document).ready(function() {
        ko.applyBindings(companyNamespace.masterModule);
    });
}(companyNamespace.masterModule.subModule = companyNamespace.masterModule.subModule || {}, jQuery, …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net-mvc-3 knockout-2.0 knockout.js

20
推荐指数
2
解决办法
7146
查看次数

CSS:#id .class VS .class性能.哪个更好?

我认为这会更快:

#dialog .videoContainer { width:100px; }
Run Code Online (Sandbox Code Playgroud)

比:

.videoContainer { width:100px; }
Run Code Online (Sandbox Code Playgroud)

当然,无论.videoContainer在第一个例子中,只会在#dialog标签下设置样式.

css css-selectors

19
推荐指数
1
解决办法
8151
查看次数

将视图模型映射到KnockoutJS验证

我使用KnockoutJS,KnockoutJS Mapping插件和jQuery 1.7.1使用ASP.NET MVC 2构建了一个页面.我希望能够使用KnockoutJS Validation插件(可在此处找到).但是,我需要同时进行服务器和客户端验证.

是否可以将我的视图模型映射到使用.extend()方法的KnockoutJS Validation插件

编辑:示例.自动转动:

[Required]
public string Firstname { get; set; }
Run Code Online (Sandbox Code Playgroud)

进入:

var viewmodel = {
    firstname: ko.observable().extend({ required: true });
}
Run Code Online (Sandbox Code Playgroud)

javascript validation asp.net-mvc knockout.js

17
推荐指数
2
解决办法
6186
查看次数

ASP.NET Core 在运行时替换单例实例

我需要在 ASP.NET Core 应用程序的生命周期内将一个对象保留在内存中,在该应用程序中我序列化该对象并将其作为快照存储在持久存储中。稍后在对象的生命周期中,我需要通过反序列化并替换单例来恢复该对象的状态。它不一定是单例,但我需要保证该对象只有一个实例。

我尝试了以下操作,但似乎它只替换了当前的请求,之后就没有任何内容了。我假设 DI 容器制作了它自己的对象副本,但我不确定

internal static SingleObject SingleObject { get; set; } = new SingleObject();

services.AddSingleton<OrderBook>(SingleObject)
Run Code Online (Sandbox Code Playgroud)

有没有办法替换单例实例,或者我必须推出自己的单例类来处理这种情况?

c# asp.net .net-core asp.net-core

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

Sammy.js 404在根路径上

我正在尝试使用sammy.js定义一些路由,这里是我的代码:

$.sammy("#main_content", function()
{
    this.get("#!/about", function()
    {
        // Code
    });

    this.get("#!/", function()
    {
        // Code
    });
}).run();
Run Code Online (Sandbox Code Playgroud)

如果我转到www.mywebsite.com我总是得到404错误.我试过把一条空白的路线this.get("", function() {});放进去,这似乎有助于防止404错误但是我的正常链接都没有工作.我该如何解决这个问题?

javascript sammy.js

8
推荐指数
2
解决办法
5571
查看次数

用于JavaScript的分层状态机

我一直对分层状态机特别感兴趣,特别是在JavaScript中,我发现了这个框架并且看起来像它的样子.但是我不确定它是否可以执行分层操作.

有没有人知道有关等级状态机的解决方案?

javascript state-machine

8
推荐指数
1
解决办法
2973
查看次数


在运行时更改成员资格提供程序ApplicationName.怎么样?

我这里有一个独特的情况.我正在制作一个能够使用不同的Web应用程序凭据登录的Web应用程序.例如,您可以登录/注册我的网站,或者您可以登录/注册您的YouTube帐户.我没有使用OpenID,因为在这种情况下我需要访问YouTube的数据.

我正在使用ASP.NET MVC 3 EF4与自定义成员,角色,配置文件提供程序.

问题是用户名不能是唯一的,因为拥有YouTube用户名的人可能与在我的网站上注册的用户具有相同的用户名.所以我通过在用户表中指定用户类型来解决这个问题.这几乎是一个复合键(用户ID和用户类型).

我有一个自定义authorize属性,正在检查用户所在的角色,但现在我需要实现自定义IPrincipal,因为我需要传递用户类型.唯一的问题是我在哪里存储?会议?

最初我认为这是应用程序表的用途,并且我暂时取得了成功,但是读到了线程问题,而且我在整个地方遇到会话故障并不是那么好:(

我想知道最好的方法是什么,因为我不能在提供程序中使用重写的方法,因为我必须在某些方法中添加UserType参数,但这会破坏提供程序的功能.

编辑:我基本上需要能够在运行时以编程方式更改ApplicationName.我尝试这样做,唯一的问题是当我停止我的开发服务器但打开浏览器然后再次运行我的开发服务器它不会保留应用程序名称.

编辑:我已经改变我的应用程序使用OAuth,我从来没有找到一个很好的解决方案.

c# asp.net security asp.net-mvc

7
推荐指数
2
解决办法
3219
查看次数

LINQ在UTC日期传递或使用DateTime.UtcNow?

我有一个实体框架查询,其条件如下:

var filtered = collection.Where(sp => sp.SubscriptionStartDate < DateTime.UtcNow && 
    sp.SubscriptionEndDate >= DateTime.UtcNow)
Run Code Online (Sandbox Code Playgroud)

比.

var currentUtcDate = DateTime.UtcNow;
var filtered = collection.Where(sp => sp.SubscriptionStartDate < currentUtcDate  && 
    sp.SubscriptionEndDate >= currentUtcDate)
Run Code Online (Sandbox Code Playgroud)

第一个将转换为SYSUTCDATETIME(),另一个将通过参数传递日期.我总是做第二个场景,两个条件的日期完全相同,而不是纳秒秒,但我正在做出这个假设.

这会影响性能,因为我每次运行时都会将不同的参数传递给查询吗?哪个是最佳做法?

c# sql linq datetime

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