Modellazione e convalida di un modulo con invio multiplo

Sto cercando di capire il modo corretto di modellare e convalidare un modulo con più tag form e più pulsanti di invio utilizzando ASP.Net Core 2. Quello che ho è un modulo in cui un utente può inserire il nome utente e la password e accedere o inserisci il loro nome, cognome e numero di cellulare e iscriviti. Ecco il mio modello:

public class Landing { [Required] public string Username { get; set; } [Required] public string Password { get; set; } [Required] public string FirstName { get; set; } [Required] public string LastName { get; set; } [Required] public string CellNumber { get; set; } } 

Ecco il mio codice di visualizzazione del razor pertinente:

 @model MyApp.ViewModels.Landing 

Ora il problema che ho incontrato è con la mia convalida. Poiché tutti i miei campi sono contrassegnati con l’attributo [Required] , quando invio il modulo utilizzando il pulsante di invio, convalida tutti i 5 campi. Quello che voglio fare è validare solo UserName e Password , SE viene premuto il primo pulsante di invio OPPURE solo validare FirstName , LastName e CellNumber , SE viene premuto il secondo pulsante di invio. Come posso raggiungere questo objective?

Vorrei rompere i miei modelli in due classi e quindi utilizzare un ViewModel invece:

 public class SignIn { [Required] public string Username { get; set; } [Required] public string Password { get; set; } } public class SignUp { [Required] public string FirstName { get; set; } [Required] public string LastName { get; set; } [Required] public string CellNumber { get; set; } } public class LandingViewModel { public SignIn SignIn { get; set; } public SignUp SignUp { get; set; } } 

Poi:

 @model MyApp.ViewModels.LandingViewModel SignIn.Username, SignIn.Password, SignUp.FirstName,...