小编Fel*_*sso的帖子

自定义验证属性中的客户端验证 - asp.net mvc 4

我在互联网上关注了一些文章和教程,以便创建一个自定义验证属性,该属性也支持asp.net mvc 4网站中的客户端验证.这就是我现在所拥有的:

RequiredIfAttribute.cs

[AttributeUsage(AttributeTargets.Property, AllowMultiple = true)] //Added
public class RequiredIfAttribute : ValidationAttribute, IClientValidatable
{
    private readonly string condition;
    private string propertyName; //Added

    public RequiredIfAttribute(string condition)
    {
        this.condition = condition;
        this.propertyName = propertyName; //Added
    }

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        PropertyInfo propertyInfo = validationContext.ObjectType.GetProperty(this.propertyName); //Added
        Delegate conditionFunction = CreateExpression(validationContext.ObjectType, _condition);
        bool conditionMet = (bool)conditionFunction.DynamicInvoke(validationContext.ObjectInstance);

        if (conditionMet)
        {
            if (value == null)
            {
                return new ValidationResult(FormatErrorMessage(null));
            }
        }

        return ValidationResult.Success;
    }

    private Delegate CreateExpression(Type objectType, string expression) …
Run Code Online (Sandbox Code Playgroud)

c# jquery jquery-validate unobtrusive-validation asp.net-mvc-4

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

为什么允许"long value"等于null?

当我调试几行代码并问我原因为什么它不起作用我偶然发现了这种情况...

if(answer.AnswerID == null) 
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

实际上它应该是这样的:

if(answer == null)
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)
  • answer是该类型的对象Answer - a class.
  • AnswerID属于类型的属性long.

奇怪的是,如果你尝试这样的事情:

long myLongValue = null;
Run Code Online (Sandbox Code Playgroud)

编译器会显示错误:

Connot convert null to long ...
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:为什么我没有得到一个编译错误,当我试图来比较long typenull

EDITED

这个问题不是关于nullable类型的.

我问为什么.NET允许我将长变量与null进行比较.我在谈论long type而不是.long? type

.net c#

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

SQL Server LEFT JOIN和WHERE子句

这是我的代码

SELECT ID, Name, Phone 
FROM Table1 
LEFT JOIN Table2 ON Table1.ID = Table2.ID
WHERE Table1.ID = 12 AND Table2.IsDefault = 1
Run Code Online (Sandbox Code Playgroud)

Table2为null时会发生问题,因此查询不返回任何内容.

如何让查询的最后一部分AND Table2.IsDefault = 1可选?

我试图使用短路查询,OR但我发现它与C#不同

sql sql-server left-join

16
推荐指数
2
解决办法
6万
查看次数

jQuery,将自定义函数绑定到DOM元素

我的应用程序中有两个div,我希望它们具有相同签名的自定义函数,但具有不同的操作,以便我可以将"当前"div存储在变量中,并调用类似于:

myCurrentDiv.theFunction(someEventData);

$("#myFirstDiv").theFunction = function() {
    alert("theFunction on firstDiv");
}
$("#mySecondDiv").theFunction = function() {
    alert("theFunction on secondDiv");
}

jquery

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

如何在DropDownListFor的扩展中添加额外的htmlattributes

我正在尝试为以下内容编写扩展名DropDownListFor:

public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, object htmlAttributes, bool enabled)
{
    return htmlHelper.DropDownListFor(expression, selectList, null /* optionLabel */, HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));
}
Run Code Online (Sandbox Code Playgroud)

我想要实现的是如果启用是假的没有改变但是如果启用是真我想@disabled="disabled"在给它们之前添加到html属性AnonymousObjectToHtmlAttributes.

关于如何做到这一点的任何想法?

asp.net-mvc

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

MVC 5具有身份验证模式的外部身份验证=表单

我正在按照本教程创建一个带有外部身份验证的简单MVC 5应用程序.它的工作很好,但是,如果我改变authentication mode="None"authentication mode="Forms"它停止工作.

我搞砸了:

await HttpContext.GetOwinContext().Authentication.GetExternalLoginInfoAsync()
Run Code Online (Sandbox Code Playgroud)

我正在阅读很多关于在重定向上禁止FormsAuthentication的内容.我不知道这是不是正确的路径,但我试图安装这个nuget数据包,问题仍然存在.

那么,为什么每次更改身份验证模式时我都会变为空?

authentication asp.net-mvc forms-authentication owin asp.net-mvc-5

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

如何正确使用Timezone?

我正在阅读很多关于时区,偏移,utc,当地时间,javascript函数,DST,培根的内容,而我正试图将这些内容整合在一起,为我的应用程序构建一个可靠/正确的结构.

假设我的应用程序类似于StackOverflow.

这就是我在做的......

  • 服务器在另一个国家/地区,因此我将其设置为UTC 00:00.
  • 我把日期存储为DateTimeOffset.
  • 不是要存放TimeZoneID.
  • 日期以这种格式发送给客户:2012-07-19T14:30:00-03:00.
  • 我正在使用角度过滤器将其转换为当地时间.

我有几个问题......

1º服务器TimeZone?

关于我的服务器(单个服务器)......它应该以"中性"UTC(+00:00)运行吗?如果将来我们迁移到服务器在不同位置运行的服务器场,该怎么办?

2º我应该存储什么?

目前,我正在将日期存储为DateTimeOffset.我正在阅读关于保存的内容,TimeZoneID但我认为没有任何用处.我错过了什么吗?

或者我应该像DateTimeUtca 一样存储日期TimeZoneID并手动转换每个日期与TimeZone班级?

3º如何转换为当地时间?

在客户端上转换数据是否安全?或者日期转换应该始终在服务器端?

4º关于夏令时.

使用我目前的方法.DST会受到尊重吗?

javascript c# timezone utc datetimeoffset

7
推荐指数
1
解决办法
1160
查看次数

HTML边距推送其他元素

有人可以回答我,为什么当我为我设置一个保证金顶部时<div id="logo">,其他所有的div都被推倒了.为什么如果一个浮动:留给我<div id="logo">,一切正常.

码:

<!DOCTYPE html>
<html lang="pt-br">
  <head>
    <title>Olá Mundo!</title>
    <style>
      /* CSS RESET HERE */ ( http://html5doctor.com/html-5-reset-stylesheet/ )
      body { margin:0; }
      #container { width:1000px; min-height:100%; height:auto; margin:0 auto; }
      #header { width:100%; height:160px; background-color:#FF0; }
      #logo { width:150px; height:150px; margin:10px 0 0 10px; background-color:#F0F; }
    </style>
  </head>
  <body>

    <div id="container">
      <div id="header">

        <div id="logo">
          <h1>Minha logo!</h1>
          <h2>meu slogan ...</h2>
        </div>

      </div>

  </body>  
</html>
Run Code Online (Sandbox Code Playgroud)

html css margin

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

如何在 Django 项目中找到我的项目名称?

我有一个 pycharm 项目,大概还有一个 Django 项目。也许它们是一回事,也许不是——我不确定其中的区别。

无论如何,在我的 settings.py 文件(位于project目录的根 目录中,我认为这是我的 pycharm 项目)我有:

ROOT_URLCONF = 'dumpstown.urls'
Run Code Online (Sandbox Code Playgroud)

这是否意味着dumpstown是我的项目名称?或者我的pycharm项目名称?区别是什么?因为我还有一个文件夹dumpstownapp,里面有我所有的 models.py 和 view.py 文件。我原以为那dumpstownapp是 Django 项目,但我真的不知道!

所以,简而言之:

在这个文件夹设置

folderA
    folderB
        views.py
        models.py
        <other stuff>
    templates folder
    settings.py
    <other stuff>
Run Code Online (Sandbox Code Playgroud)

这是“Django 项目名称”~ 我的意思是,如果我在我的 models.py(如上所示)中定义了一个 UserProfile,我AUTH_PROFILE_MODULE需要它的条目是什么?我从 django 文档中得到了一些理解 - 我假设

dumpstownapp.models.UserProfile
Run Code Online (Sandbox Code Playgroud)

但是从我得到的文档中

dumpstownapp.UserProfile
Run Code Online (Sandbox Code Playgroud)

或者也许我的应用程序被称为 dumpstown?并且然后我得到了什么?

django pycharm

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

AngularJS帖子的全局标题

如何使用AngularJS创建类似于jQuery的全局标头?

像这样的东西:

$.ajaxSetup({
    beforeSend: function (xhr) {
        xhr.setRequestHeader('Requested-With', 'XMLHttpRequest');
        xhr.setRequestHeader('__RequestVerificationToken', 'abc123');
    }
});
Run Code Online (Sandbox Code Playgroud)

现在我这样做:

$http({
    url: 'mysite.com/',
    method: 'POST',
    data: 'data',
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
Run Code Online (Sandbox Code Playgroud)

jquery http-headers angularjs

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