我在互联网上关注了一些文章和教程,以便创建一个自定义验证属性,该属性也支持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
当我调试几行代码并问我原因为什么它不起作用我偶然发现了这种情况...
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 type
有null
?
EDITED
这个问题不是关于nullable
类型的.
我问为什么.NET允许我将长变量与null进行比较.我在谈论long type
而不是.long? type
这是我的代码
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#不同
我的应用程序中有两个div,我希望它们具有相同签名的自定义函数,但具有不同的操作,以便我可以将"当前"div存储在变量中,并调用类似于:
myCurrentDiv.theFunction(someEventData);
$("#myFirstDiv").theFunction = function() { alert("theFunction on firstDiv"); } $("#mySecondDiv").theFunction = function() { alert("theFunction on secondDiv"); }
我正在尝试为以下内容编写扩展名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
.
关于如何做到这一点的任何想法?
我正在按照本教程创建一个带有外部身份验证的简单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
我正在阅读很多关于时区,偏移,utc,当地时间,javascript函数,DST,培根的内容,而我正试图将这些内容整合在一起,为我的应用程序构建一个可靠/正确的结构.
假设我的应用程序类似于StackOverflow.
这就是我在做的......
DateTimeOffset
.TimeZoneID
.2012-07-19T14:30:00-03:00
.我有几个问题......
关于我的服务器(单个服务器)......它应该以"中性"UTC(+00:00)运行吗?如果将来我们迁移到服务器在不同位置运行的服务器场,该怎么办?
目前,我正在将日期存储为DateTimeOffset
.我正在阅读关于保存的内容,TimeZoneID
但我认为没有任何用处.我错过了什么吗?
或者我应该像DateTimeUtc
a 一样存储日期TimeZoneID
并手动转换每个日期与TimeZone
班级?
在客户端上转换数据是否安全?或者日期转换应该始终在服务器端?
使用我目前的方法.DST会受到尊重吗?
有人可以回答我,为什么当我为我设置一个保证金顶部时<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) 我有一个 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?并且然后我得到了什么?
如何使用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) c# ×3
jquery ×3
asp.net-mvc ×2
.net ×1
angularjs ×1
css ×1
django ×1
html ×1
http-headers ×1
javascript ×1
left-join ×1
margin ×1
owin ×1
pycharm ×1
sql ×1
sql-server ×1
timezone ×1
utc ×1