Tom*_*icz 6 asp.net asp.net-mvc model view model-validation
使用ASP.NET MVC,我有一个模型,我附加属性,以便我可以使用MVC模型绑定验证,但这不会打破MVC的规则,你放置属于的项目视图,进入模型?我希望我不是为了变得聪明,但我对其他人的意见感到好奇.
public class Payments
{
[DataType(DataType.Text)]
[DisplayFormat(NullDisplayText="")]
[Display(Name="Payment Id")]
[Required(ErrorMessage="Required")]
public int PaymentId { get; set; } //todo: make this into a dropdown
[DataType(DataType.Text)]
[Display(Name="Bill Name")]
[Required(ErrorMessage = "Required")]
public string PaymentName { get; set; }
[DataType(DataType.Date)]
[Display(Name="Date to Post Payment")]
[Required(ErrorMessage = "Required")]
public DateTime PaymentDate { get; set; }
[DataType(DataType.Currency)]
[Range(0, 922337203685477.5807)]
[Required(ErrorMessage = "Required")]
public double PaymentAmount { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*ias 10
您可以(但不必须)将这些验证属性放在模型中.
但最好使用ViewModel:
public class PaymentsViewModel
{
[DataType(DataType.Text)]
[DisplayFormat(NullDisplayText="")]
[Display(Name="Payment Id")]
[Required(ErrorMessage="Required")]
public int PaymentId { get; set; } //todo: make this into a dropdown
[DataType(DataType.Text)]
[Display(Name="Bill Name")]
[Required(ErrorMessage = "Required")]
public string PaymentName { get; set; }
[DataType(DataType.Date)]
[Display(Name="Date to Post Payment")]
[Required(ErrorMessage = "Required")]
public DateTime PaymentDate { get; set; }
[DataType(DataType.Currency)]
[Range(0, 922337203685477.5807)]
[Required(ErrorMessage = "Required")]
public double PaymentAmount { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
并在您的视图中,而不是:
@model YourProject.Models.Payments
Run Code Online (Sandbox Code Playgroud)
你用:
@model YourProject.Models.PaymentsViewModel
Run Code Online (Sandbox Code Playgroud)
用于验证.
| 归档时间: |
|
| 查看次数: |
1801 次 |
| 最近记录: |