С некоторыми полезными советами от @Josiah я могу выполнить свое требование.
Добавьте класс RequiredIfAttribute и требуемый javascript.См. Условная проверка в ASP.NET MVC 3
И в классе добавьте атрибут RequiredIf
как:
public class User
{
[RequiredIf("hFirstName", "true", ErrorMessage = "First Name is required")]
public string FirstName { get; set; }
и в aspx:
@Html.TextBoxFor(model => Model.FirstName, new { @style = "height:auto;" })
@Html.ValidationMessageFor(model => Model.FirstName)
@Html.Hidden("hFirstName")
Установите для hFirstName
значение «true», если поле FirstName скрыто, и «false», если оно отображается.
Магия работает с этими изменениями.Спасибо @Josiah Ruddell за его ответ