Làm cách nào để bạn tạo các thuộc tính bắt buộc có điều kiện với khung MVC 3 sẽ làm việc với Xác thực phía máy khách cũng như Xác thực phía máy chủ khi JS bị tắt? Ví dụ:MVC 3 Các thuộc tính bắt buộc có tính chất
public class PersonModel
{
[Required] // Requried if Location is not set
public string Name {get; set;}
[Range(1, 5)] // Requried if Location is not set
public int Age {get; set;}
[Required] // Only required if Name and Age are not set.
public string Location {get; set;}
}
Các quy tắc trong ví dụ này là:
Name
vàAge
được yêu cầu nếuLocation
không được thiết lập.Location
chỉ bắt buộc nếuName
vàAge
không được đặt.- Không quan trọng nếu Tên, Tuổi và Vị trí đều được đặt.
Trong chế độ xem, tôi cần kết quả được gửi đến Action
nếu tên/độ tuổi được đặt. Và một Action
khác nếu Vị trí được đặt. Tôi đã thử với 2 hình thức riêng biệt với Get Url khác nhau; điều này làm việc tuyệt vời ngoại trừ các quy tắc xác nhận đang gây ra sự cố. Ưu tiên sử dụng, tôi muốn sử dụng 2 hành động Nhận riêng Url của, ví dụ,
@model PersonModel
@using(Html.BeginForm("Age", "Person", FormMethod.Post))
{
@Html.TextBoxFor(x => x.Name)
@Html.ValidationMessageFor(x => x.Name)
@Html.TextBoxFor(x => x.Age)
@Html.ValidationMessageFor(x => x.Age)
<input type="submit" value="Submit by Age" />
}
@using(Html.BeginForm("Location", "Person", FormMethod.Post))
{
@Html.TextBoxFor(x => x.Location)
@Html.ValidationMessageFor(x => x.Location)
<input type="submit" value="Submit by Location" />
}
Dựa trên PersonModel
trên, nếu các vị trí được gửi, xác nhận sẽ thất bại kể từ khi PersonModel dự kiến Name và Age là cũng được thiết lập. Và ngược lại với Tên/Tuổi.
Ví dụ được mô tả ở trên, làm thế nào để bạn tạo các thuộc tính bắt buộc có điều kiện với khung MVC 3 sẽ làm việc với Xác thực phía máy khách cũng như Xác thực phía máy chủ khi JS bị tắt?