小编Ebb*_*bbs的帖子

在WebAPI中使用Model上的Serializable属性

我有以下场景:我正在使用WebAPI并根据模型将JSON结果返回给使用者.我现在还需要将模型序列化为base64,以便能够将它们保存在缓存中和/或将它们用于审计目的.问题是当我将[Serializable]属性添加到模型以便将模型转换为Base64时,JSON输出会发生如下变化:

该模型:

[Serializable]
public class ResortModel
{
    public int ResortKey { get; set; }

    public string ResortName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如果没有该[Serializable]属性,则JSON输出为:

{
    "ResortKey": 1,
    "ResortName": "Resort A"
}
Run Code Online (Sandbox Code Playgroud)

使用[Serializable]JSON输出的属性是:

{
    "<ResortKey>k__BackingField": 1,
    "<ResortName>k__BackingField": "Resort A"
}
Run Code Online (Sandbox Code Playgroud)

如何在[Serializable]不更改JSON输出的情况下使用该属性?

c# json serializable asp.net-web-api

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

无法正确设置JWT的Exp和Iat

我有点难过这个.我正在尝试建立一个有效的JWT.我正在使用node.js和jsonwebtoken中间件.我已经按照repo(位于此处)上的文档进行操作,但我一直得到错误的Exp和Iat.显然我想要做到这一点,以便我不允许已经过期的JWT.

作为测试,我有以下代码:

var token = jwt.sign({"id": user._id}, configGeneral.JWT, { expiresIn: '1h' });

var decoded = jwt.decode(token, configGeneral.JWT);

var d1 = new Date(decoded.exp);
var d2 = new Date(decoded.iat);

console.log(decoded);
console.log(d1);
console.log(d2);
Run Code Online (Sandbox Code Playgroud)

这个输出是:

{ id: '56253091fe0397c80133f3e4',
  iat: 1445714161,
  exp: 1445717761 }
Sat Jan 17 1970 19:35:17 GMT+0200 (South Africa Standard Time)
Sat Jan 17 1970 19:35:14 GMT+0200 (South Africa Standard Time)
Run Code Online (Sandbox Code Playgroud)

如何让时间戳不反映javascript时代,而是从现在起1小时后的时间?(对于iat和exp.)

javascript node.js jwt json-web-token

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

使用 C# 和 Web API 自定义所需属性,并使用带有验证上下文的私有访问修饰符

我有以下自定义必需属性:

public class RequiredIfAttribute : RequiredAttribute
{
    private string _DependentProperty;
    private object _TargetValue;

    public RequiredIfAttribute(string dependentProperty, object targetValue)
    {
        this._DependentProperty = dependentProperty;
        this._TargetValue = targetValue;
    }

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        var propertyTestedInfo = validationContext.ObjectType.GetProperty(this._DependentProperty);

        if (propertyTestedInfo == null)
        {
            return new ValidationResult(string.Format("{0} needs to be exist in this object.", this._DependentProperty));
        }

        var dependendValue = propertyTestedInfo.GetValue(validationContext.ObjectInstance, null);

        if (dependendValue == null)
        {
            return new ValidationResult(string.Format("{0} needs to be populated.", this._DependentProperty));
        }

        if (dependendValue.Equals(this._TargetValue))
        {
            var x = …
Run Code Online (Sandbox Code Playgroud)

c# requiredfieldvalidator data-annotations asp.net-web-api

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

旋转图标刷新

我正在关注这个例子.

我对CSS3还有点新意,不知道我做错了什么.我有一个使用MVC4的简单网站,有twitter bootstrap和fontawesome.我在等待jQquery帖子完成时试图让刷新按钮生动.

我已将CSS(如示例中所指定)放在其自己的文件中,并且正确引用它.

我已经尝试将jQuery用作文件,只是在页面上的脚本标记中.

无论我尝试哪种组合,我都无法旋转刷新图标.

我有什么想法我做错了吗?还有其他方法可以旋转图标吗?

css3 twitter-bootstrap font-awesome

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

无法阻止Jquery中事件的传播

我有点困惑.我列出了名称旁边带有复选框的名称.列表是在向后端发布后动态构建的.

问题是每当我点击复选框时立即取消选中它.我之所以知道这一点,是因为如果在事件中插入警报,则会实际选中该复选框,直到警报被取消.

这是我的代码:

$("#NamesList").on("click", "input[type='checkbox']", function (e) {
    CheckboxClicked();
    return false;
})
.on("click", "li", function (e) {
    e.preventDefault();
    e.stopPropagation();

    switch (e.target.nodeName) {
         case "A":
             GetPerson(e.target.href)
             break;
         case "LI":
              GetPerson($("a", e.target).attr("href"))
              break;
         default: return false;
     }

     return false;
});
Run Code Online (Sandbox Code Playgroud)

事实上,我在listitem中有链接,我需要能够遵循.如果取出导航到链接的部分,则复选框功能正常.

这就是典型的名称列表:

<ul id="NamesList">
     <li id="1">
         <input class="checkbox" type="checkbox" />
         <a href="/some/link/somewhere/1">John Smith</a>
     </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

html jquery stoppropagation

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