小编Jas*_*ley的帖子

Rails 3默认日期时间格式没有UTC

我正在创建一个新的Rails 3应用程序,在其中我使用DateTime了几个字段,但是每个日期时间字段标准都有UTC(在视图中),如:

2010-10-10 16:19:00 UTC
Run Code Online (Sandbox Code Playgroud)

如何摆脱UTC部分?

更新:这是我到目前为止所拥有的:

<%= trip.truckleft.strftime("%Y-%m-%d %H:%M") %>
Run Code Online (Sandbox Code Playgroud)

所以我现在要做的就是把它放在帮助器中,但是不是更好的通用方式吗?

我查看了其他一些帖子,建议创建一个time_formats.rb初始化器,但是我没有做任何成功.

感谢您的帮助,非常感谢!

datetime ruby-on-rails ruby-on-rails-3

47
推荐指数
4
解决办法
5万
查看次数

测试WebApi控制器Url.Link

我有以下控制器操作

public void Post(Dto model)
{
    using (var message = new MailMessage())
    {
        var link = Url.Link("ConfirmAccount", new { model.Id });

        message.To.Add(model.ToAddress);
        message.IsBodyHtml = true;
        message.Body = string.Format(@"<p>Click <a href=""{0}"">here</a> to complete your registration.<p><p>You may also copy and paste this link into your browser.</p><p>{0}</p>", link);

        MailClient.Send(message);
    }
}
Run Code Online (Sandbox Code Playgroud)

为了测试这个,我需要设置控制器上下文

var httpConfiguration = new HttpConfiguration(new HttpRouteCollection { { "ConfirmAccount", new HttpRoute() } });
var httpRouteData = new HttpRouteData(httpConfiguration.Routes.First());
var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, "http://localhost");
sut = new TheController
{
    ControllerContext = …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing asp.net-web-api

11
推荐指数
3
解决办法
7359
查看次数

webapi批处理和委托处理程序

基于我的一篇文章,我能够让批处理工作......直到某一点.除了注册路由特定处理程序之外,我还有2个委派处理程序

  1. 验证用户
  2. 记录

批处理程序通过委托处理程序验证用户并记录请求.当messagehandlerinvoker开始发送子/嵌套请求时,抛出以下异常.

System.ArgumentException was unhandled by user code
  HResult=-2147024809
  Message=The 'DelegatingHandler' list is invalid because the property 'InnerHandler' of 'AuthenticationMessageHandler' is not null.
Parameter name: handlers
  Source=System.Net.Http.Formatting
  ParamName=handlers
  StackTrace:
       at System.Net.Http.HttpClientFactory.CreatePipeline(HttpMessageHandler innerHandler, IEnumerable`1 handlers)
       at System.Web.Http.HttpServer.Initialize()
       at System.Web.Http.HttpServer.<EnsureInitialized>b__3()
       at System.Threading.LazyInitializer.EnsureInitializedCore[T](T& target, Boolean& initialized, Object& syncLock, Func`1 valueFactory)
       at System.Threading.LazyInitializer.EnsureInitialized[T](T& target, Boolean& initialized, Object& syncLock, Func`1 valueFactory)
       at System.Web.Http.HttpServer.EnsureInitialized()
       at System.Web.Http.HttpServer.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
       at System.Net.Http.HttpMessageInvoker.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
       at RoutingRequest.Service.Startup.BatchMessageHandler.<>c__DisplayClassd.<PrcoessRequest>b__b(Task`1 m) in C:\CEI\Clients\Footlocker.com\FL - …
Run Code Online (Sandbox Code Playgroud)

batch-processing asp.net-web-api

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

Windows模拟和复制令牌

我有一个asp.net项目,请求将工作委托给后台(通过quartz.net).Web应用程序正在使用Windows身份验证和模拟.

我还想在后台线程上模拟当前用户.我已经阅读了如何使用提供的域名,用户名和密码模拟用户并调用内核.那种方法有效.

IntPtr token;
var successfullLogon = LogonUser(userName, password, domain, logonType, logonProvider, out token);
if(successfullLogon == false)
{
    var errorCode = Marshal.GetHRForLastWin32Error();
    Marshal.ThrowExceptionForHR(errorCode);
}
Run Code Online (Sandbox Code Playgroud)

这可行,但它要求我提供特定的用户名/密码,或让用户输入他们的密码.这两种情况都不理想.

我想要的是将令牌从用户的身份从请求传递到后台,然后从这个现有令牌模拟用户.我读到我应该可以调用DuplicateHandle,

var token = ((WindowsIdentity)Request.User.Identity).GetToken().ToInt64();
var token = new IntPrt(token from request);
IntPtr duplicate;
try
{
    if(NaviteMethod.DuplicateToken(token, SecurityImpersonationLevel.Impersonate, out duplicate) == false)
    {
        var errorCode = Marshal.GetHRForLastWin32Error();
        Marshal.ThrowExceptionForHR(errorCode);
    }

    using(var identity = new WindowsIdentity(duplicate))
    using(var context = identity.Impersonate())
    {
        //do work
        context.Undo();
    }
}
finally
{
    if(duplicate != IntPtr.Zero)
    {
        NaviteMethod.CloseHandler(duplicate);
    }
}
Run Code Online (Sandbox Code Playgroud)

但我得到一个异常重叠I/O操作正在进行中 …

c# asp.net impersonation

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

webapi将模型渲染为控制器内的html

我有一个webapi控制器动作,它创建一个HTML电子邮件.目前我正在使用string.format来创建html,因为这是最简单的事情.我知道这将变得更加复杂,并希望使用剃刀模板.

我已经看到了如何为MVC控制器执行此操作的示例,但我找不到任何有关如何在一个内容中执行此操作WebApiController.这可能吗?如果是这样,你知道任何资源吗?我的google-fu让我失望了.

razor asp.net-web-api

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

将子项添加到现有的treenode

我想检查treenode是否存在以及是否存在然后将child添加到现有的TreeNode.

假设我有一个TreeNode treeroot和一个子treechild1.我创建了这样的treenode:

TreeNode[] tchild = new TreeNode[] {"childe1"};

TreeNode troot = new TreeNode("treeroot",tchild);
Run Code Online (Sandbox Code Playgroud)

现在我想检查是否创建了treeroot.如果已创建,那么我想在检查后获得的另一个子节点添加到该节点.我怎样才能做到这一点?

.net c#

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

如何从构建命令为 sqlproj 定位 azure v12 数据库

我们有一个 sqlproj针对本地 SQL 2014 的。生成和发布按 Visual Studio 的预期工作。

现在我们正在尝试使用 VS Online 构建数据库项目并将其部署到 Azure 数据库 v12。我们收到错误,指出 SSDT 目标数据库错误。这是有道理的,因为 Azure 数据库和 SQL 2014 支持不同的功能并产生不同的警告/错误。我们在网上找到的每篇文章/帖子都展示了如何在设计时从 GUI 更改目标平台。

我们的假设是平台可以在构建时定位,与更改类库的目标平台相同。但是,我们无法找到 sqlproj 目标平台的可用参数列表。

有没有人有链接或知道要为 VS Online 构建参数设置的 key=value 属性?
谢谢

sqlproj azure-sql-database azure-devops

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

Html.BeginForm之后如何保持在同一页面上而无需刷新或重新加载

目标:

我想知道,如何使用“ @using Html.Beginform ”提交表单后,保持在同一页面上而无需再次加载内容

代码:

控制者

  [HttpPost]
    public ActionResult Save(DetailHvmModel model)
    {
        HvmService.Save(model);
        return View();
    }
Run Code Online (Sandbox Code Playgroud)

视图:

 @using (Html.BeginForm(Actions.Valoration_Save, Controllers.Valoration, FormMethod.Post))
       { 
//Html
       }
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc

0
推荐指数
1
解决办法
4699
查看次数