我在ASP.NET MVC 2中广泛使用Data Annotation验证.这个新功能节省了大量时间,因为我现在能够在一个地方定义客户端验证和服务器端验证.然而,当我做一些详细的测试时,我意识到如果我单独依赖Data Annotation验证,那么很容易绕过服务器端验证.例如,如果我通过使用[Required]属性注释属性来定义必需字段并在表单中放置该必填字段的文本框,则用户可以简单地从DOM中删除文本框(可以通过Firebug轻松完成)现在,在Controller内的ModelBinding期间,不会在该属性上触发数据注释验证.为了确保触发"必需"验证,我可以在ModelBinding发生后重复验证,但后来我会重复我的验证逻辑.
每个人对验证的建议是什么?数据注释验证是否足够?或者是否需要重复验证以确保在所有情况下都能触发验证?
后续评论: 根据以下答案,我似乎不能单独依赖Model Binder和Data Annotation验证.由于我们得出结论认为需要额外的服务器端验证,我的服务层是否有一种简单的方法可以根据数据注释中定义的内容触发验证?看起来这将使我们两个词中最好的...我们不需要重复验证代码,但我们仍然会确保即使Model Binder没有触发它也会执行验证.
我将把这个后续评论作为一个单独的问题发布,因为它提出了一个与原始评论不同的问题.
我有一个看起来像这样的数据(FASTA格式).请注意,附带2">"标题块和序列.
>SRR018006
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGN
>SRR018006
ACCCGCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
Run Code Online (Sandbox Code Playgroud)
我想要做的是在文章中附加一个文本(例如"foo"),产生:
>SRR018006-foo
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGN
>SRR018006-foo
ACCCGCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
Run Code Online (Sandbox Code Playgroud)
有没有办法使用SED?最好在线修改原始文件.
如何让Objective-C项目在Ubuntu上运行?
我的文件是:
Fraction.h
#import <Foundation/NSObject.h>
@interface Fraction: NSObject {
int numerator;
int denominator;
}
-(void) print;
-(void) setNumerator: (int) n;
-(void) setDenominator: (int) d;
-(int) numerator;
-(int) denominator;
@end
Run Code Online (Sandbox Code Playgroud)
Fraction.m
#import "Fraction.h"
#import <stdio.h>
@implementation Fraction
-(void) print {
printf( "%i/%i", numerator, denominator );
}
-(void) setNumerator: (int) n {
numerator = n;
}
-(void) setDenominator: (int) d {
denominator = d;
}
-(int) denominator {
return denominator;
}
-(int) numerator {
return numerator;
}
@end
Run Code Online (Sandbox Code Playgroud)
的main.m
#import <stdio.h>
#import …Run Code Online (Sandbox Code Playgroud) 为什么Andres Heilsberg设计的LINQ语法与SQL的语法不同(这为程序员学习一个全新的东西带来了开销)?
如果它使用与SQL相同的语法,那不是更好吗?
Twitter有哪些LINQ提供商,他们如何比较?除了发布推文之外,还有什么能让您查询推文,关注者和关注者吗?关系支持怎么样?例如
from user in my-followers
where user.name.contains("drew")
and user.followers.count > 10
from tweet in user.tweets
where tweet.message.length < 100
select tweet.message
Run Code Online (Sandbox Code Playgroud)
编辑: 是的,我可以使用Google轻松找到Twitter API.有趣的是在可用库的LINQ功能,面向对象和功能支持方面进行了比较.
有没有人知道包含典型编译器课程的在线课程/大学讲座?我有计算理论但不幸的是我的学校没有提供编译器构建课程.
我知道那里有讲座; 我希望能为特别好的产品提供建议.
还有新手到现场的书吗?除了龙书之外,至少还有一些东西.初学者水平很好,我知道市场上有很多中级高级文本.
谢谢!
我在代码中注意到有一个disabled = ture'锚标签的源代码.我想知道为什么它在IE中有效.我还搜索了互联网,并通过网络搜索在很多源代码中使用它.我一直在寻找,如果真的,错误的拼写也可以被IE使用.
有没有人对此有任何想法?
我有一个私人分支,我做了很多提交,然后我把它合并到trunk,并在那里做了一些小调整.
现在,如果我们需要回滚,那么trunk维护者想要对我的所有更改进行区分.
我该如何创建呢?如果您的示例需要数字,请假设
224446
是我合并到主干的主要修订版,
224453 和 224462
是我的小修理,在我的私人分支机构中我有无数的变化.
解决方案(通过马丁)
svn diff -r 224452:224453 > ~/tmp/diff.1
svn diff -r 224462:224463 > ~/tmp/diff.2
svn up -r224446
patch < ~/tmp/diff.1 -p0
patch < ~/tmp/diff.2 -p0
svn diff -r 224445 > ~/tmp/changes.patch
Run Code Online (Sandbox Code Playgroud)
然后将〜/ tmp/changes.patch邮寄给我们的主干维护人员以便妥善保管.
我想用OpenGL编写代码,但我不想通过Windows API,这可能吗?如果是这样,那么一些关于如何做到这一点的教程的链接会很好.
我需要一个小部件,它应该只显示一个块,因为我将使用jQuery添加功能.我试图通过Widget的"媒体"类包含javascript和样式表,它对我不起作用.
这是代码:
class StarsWidget(Widget):
"""
Widget with stars for rating
"""
class Media:
js = (
settings.MEDIA_URL + 'js/rating.js',
)
css = {
'screen': (
settings.MEDIA_URL + 'css/rating.css',
)
}
def render(self, name, value, attrs=None):
if value is None: value = ''
attrs = {'id':'ratingX', 'class':'rating'}
final_attrs = self.build_attrs(attrs, name=name)
if value != '':
# Only add the 'value' attribute if a value is non-empty.
final_attrs['value'] = force_unicode(value)
return mark_safe(u'<div %s ></div>' % flatatt(final_attrs))
Run Code Online (Sandbox Code Playgroud)
任何建议或帮助将不胜感激