MS考试70-536 - 在编写任何代码之前如何约束输入?

时间:2010-03-14 07:32:18

标签: .net validation

MS Exam 70-536 .Net Foundation中,案例场景1中的第3章“搜索,修改和编码文本”

  

您的组织Northwind Traders正在创建一个允许的基于Web的应用程序   客户将自己的联系信息输入您的数据库。作为一个新的   员工,您被分配了一个简单的任务:创建前端界面并准备   要存储在数据库中的用户输入......

有一个问题:

  

在编写任何代码之前如何约束输入?

我认为这可能是正则表达式模式的设计,但它不会真正限制输入,是吗?我在精神运动方面还不是很好!

或许还有其他方式?

4 个答案:

答案 0 :(得分:8)

它在谈论什么样的输入?

TextBox(至少在Windows窗体中)有一堆属性,可以在不编写任何代码的情况下约束输入。例如,MaxLength将阻止用户输入超过一定长度的字符串。 CharacterCasing将强制文本为大写或小写。

类似地,MaskedTextBox,DateTimePicker或NumericUpDown等控件允许输入而不允许自由文本输入,因此用户可能被约束为某种类型(DateTime或Decimal)。

答案 1 :(得分:2)

有些人会在书的中间找到一些名为StringInputValidators的属性........这里看下面......

[ConfigurationProperty("lastUser", DefaultValue = "User", IsRequired = true)]
[StringValidator(InvalidCharacters  = ""!@#$%^&")] // and etc
public string LastUser
{   // get and set accessor code logic in here. }

这应该是非常明显的,这是限制应用于字符串属性的文本的一种方法。这是ofc的“代码”方式,但如果有这样的方法应用这样的atttribute,我不知道如何通过VS UI这样做。尽管如此,它部分回答了你的问题。

答案 2 :(得分:1)

立即想到的两件事就是约束字符集,或者向数据库添加检查约束。

问题很模糊,答案可能取决于需要进行验证的地方,使用的技术,以及“代码”的定义。例如,创建嵌入约束的自定义类型是否有资格作为“代码”?如果它是一个网络应用程序,HTML会被计算?客户端Javascript?

答案 3 :(得分:0)

我注意到本书最后有答案:)

  

答案:您可以使用单独的ASP.NET RegularExpressionValidator控件来限制   输入三个盒子中的每一个。对于公司名称验证程序,请设置ValidationExpression   属性为“[a-zA-Z'-´\s]{1,40}”. For the contact name validator, you can use the regular expression, “[a-zA-Z' - Ã,Â'\ s] {1,30}”。最后,为   电话号码验证器,你可以使用ASP.NET的内置正则表达式,   “(((\ d {3})?)|(\ d {3} - ))?\ d {3} - \ d {4}”。

我认为这不正确,知识要求是

  

要完成本章的课程,您应该熟悉Microsoft Visual   基本或C#并熟悉以下任务:
  ■使用Visual Basic或C#在Microsoft Visual Studio中创建控制台应用程序   ■将对系统类库的引用添加到项目中   ■创建文本文件。