我写了一个自定义信用卡验证属性,检查CardNumber属性是否对特定卡类型有效(同一类中的另一个属性)
[CardValidationBinCheck(this.CardType,
ErrorMessage = "CreditCardNumberDoesNotMatchCardType")]
public string CardNumber
{
...
}
Run Code Online (Sandbox Code Playgroud)
这不会编译,因为工作室抱怨属性参数必须是常量,类型表达式或属性参数类型(?)的数组创建表达式.
无论如何我可以通过cirvumvent这个并将我传递this.CardType给属性?
善良,
担
在模型上使用Data Annotations时,我遇到了为客户端验证而发出的JavaScript的问题.这是一个模型的示例,它可以很好地处理两个必填字段,然后是发出的JavaScript:
public class LoginUserViewModel
{
[Required(ErrorMessage = "Email required")]
public string EmailAddress { get; set; }
[Required(ErrorMessage="Password required")]
public string Password { get; set; }
}
}
//<![CDATA[
if (!window.mvcClientValidationMetadata) { window.mvcClientValidationMetadata = []; }
window.mvcClientValidationMetadata.push({"Fields":[{"FieldName":"EmailAddress","ReplaceValidationMessageContents":true,"ValidationMessageId":"form0_EmailAddress_validationMessage","ValidationRules":[{"ErrorMessage":"Email required","ValidationParameters":{},"ValidationType":"required"}]},{"FieldName":"Password","ReplaceValidationMessageContents":true,"ValidationMessageId":"form0_Password_validationMessage","ValidationRules":[{"ErrorMessage":"Password required","ValidationParameters":{},"ValidationType":"required"}]}],"FormId":"form0","ReplaceValidationSummary":false});
//]]>
Run Code Online (Sandbox Code Playgroud)
一旦我在EmailAddress字段上添加了另一个属性(正则表达式属性),JavaScript就不再发出任何规则.请注意,在下面的JavaScript中,只有一个空数组,其中应该是规则.这是改变和脚本.有任何想法吗?
public class LoginUserViewModel
{
[Required(ErrorMessage = "Email required")]
[RegularExpression(@"^[a-z0-9]+([-+\.]*[a-z0-9]+)*@[a-z0-9]+([-\.][a-z0-9]+)*{2,4}$", ErrorMessage = "Invalid email format")]
public string EmailAddress { get; set; }
[Required(ErrorMessage="Password required")]
public string Password { get; set; }
}
//<![CDATA[
if (!window.mvcClientValidationMetadata) { window.mvcClientValidationMetadata = []; } …Run Code Online (Sandbox Code Playgroud) 所以我有一个由EntityFramework4为我的sqlexpress08数据库生成的DataEntity类.此数据上下文通过WCF数据服务/ Odata公开给silverlight和win表单客户端.
数据实体+ edmx文件(由EF4生成)是否应该进入单独的类库?
这里的问题是我会为几个实体指定数据注释,然后其中一些需要特定的MVC属性(比如CompareAttribute),所以类库也会引用mvc dll.也恰好有实体用户将被封装或包装到网站中的IIdentity中.所以它与mvc网站很相关.或者它应该放在mvc项目本身的Base文件夹中?
大多数网站是围绕数据库的数据驱动,如批准用户,更改全局设置等.真正的业务发生在silverlight和win form应用程序中.
我使用mvc3 rc2与Razor.
谢谢
asp.net-mvc entity-framework project-organization data-annotations asp.net-mvc-3
我有两个不同的对象需要比较平等
我可以使用反射来编写一些代码来比较属性值,但是想知道.net 4.0中是否有任何新模式可以解决这个问题
在我的模型中,我有具有日期时间类型的MyDate属性.我在此模式下使用DisplayFormat属性对属性进行签名:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy hh:mm}")]
public DateTime MyDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
在我看来:
...
<%= Html.EditorFor(model => model.Evento.MyDate)%>
...
Run Code Online (Sandbox Code Playgroud)
为什么如果财产的价值是'2011-05-03 14:47',在我看来(进入EditorFor)我看到'03/05/2011 02.47'?
DataFormatString是正确的!
非常感谢你的回复
阿尔贝托
public class ChangePasswordObject {
[Required] [DataType(DataType.EmailAddress)]
string email;
[Required]
string authorization_code;
[Required] [DataType(DataType.Password)]
string password;
}
Run Code Online (Sandbox Code Playgroud) 我知道我可以使用[Required],[StringLength]标注用于验证空字符串和长度要求,但想用相同的正则表达式验证他们.我没有尝试,因为我对正则表达式不是很好.
正则表达式应该验证
1.空字符串(不应该被允许)
2.人物长度(8)
3.Integer
4.开始编号(应为1)
这是代码:
[DisplayName("Account Number:")]
[RegularExpression("",
ErrorMessage = "An eight digit long number starting with 1 required")]
public string accountNo { get; set; }
Run Code Online (Sandbox Code Playgroud)
提前致谢 !
我有一个非常复杂的模型和视图(下图).我只有一个必填项(Key Active Mg).当我标记[Required(ErrorMessage="Key Active Mg is required")]并@Html.ValidationMessageFor为该字段设置时,我的应用程序将允许我输入任何内容并单击"保存".当然Model.IsValid会回来false.它没有返回并以红色标出该字段,表明它是必需的.有谁知道为什么?
我的模特:
public class RawValues
{
[Key]
public int Pk { get; set; }
public int? FillerFk { get; set; }
[Display(Name = "Filler")]
[ForeignKey("FillerFk")]
public virtual Filler Filler { get; set; }
public int? CapsuleFk { get; set; }
[Display(Name = "Capsule")]
[ForeignKey("CapsuleFk")]
public virtual Capsule Capsule { get; set; }
public int? KeyActiveFk { get; set; }
[Display(Name = "Key Active")]
[ForeignKey("KeyActiveFk")]
public virtual …Run Code Online (Sandbox Code Playgroud) 我需要使用数据注释来验证所有印度手机号码。在我的模型中,我使用以下代码
[Required]
[Display(Name = "Mobile Number")]
[CustomRemote("IsMobileNoAvailable", "Employees",
ErrorMessage = "Mobile No already in use", AdditionalFields = "Id")]
[?]
public string ContactNumber { get; set; }
Run Code Online (Sandbox Code Playgroud)
但是我很困惑我需要写些什么来代替[?]吗?请建议我验证手机号码的最佳方法。
我有一些现有的旧式帮助程序类,没有bean注释,也没有xml配置。我想为相同的类创建bean,而无需修改(不添加注释),并且在xml中没有任何额外的配置。可能吗?
data-annotations ×10
asp.net-mvc ×4
c# ×4
.net ×2
validation ×2
annotations ×1
asp.net ×1
attributes ×1
comparison ×1
dataformat ×1
editorfor ×1
java ×1
javascript ×1
regex ×1
spring ×1
spring-boot ×1