Ich versuche, mehrere Benutzer Eingabefelder zu validieren, die Typ-Ahead verwenden. Ich möchte alle Eingaben ablehnen, die nicht in der Schnelladressliste enthalten sind.Wie behebe ich den Fehler: Argument 1: Kann nicht von "String" in "Name.Entity.Models.MakeModelInfo" konvertieren
Aber ich bin immer ein Build-Fehler auf dem 'var isValid' Codezeile, wenn ich versuche, meine Anwendung auszuführen:
Mein Ansichtsmodell
[Required]
[StringLength(100)]
[AllowedModelMake(ErrorMessage = "Please enter a Make from the list.")] //JosephW
public string Make { get; set; }
public string MakePlaceholder { get; set; }
[Required]
[StringLength(100)]
[AllowedModelMake(ErrorMessage = "Please enter a Model from the list.")] //JosephW
public string Model { get; set; }
public string ModelPlaceholder { get; set; }
mein Controller
public class AllowedModelMakeAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
// Validate that user input is in the list of allowed values
var allowedList = MakeModelHelpers.GetActiveMakeModelInfo();
var userInput = value as string;
var isValid = allowedList.Contains(userInput); //<- ERROR IS HERE
return isValid;
}
}
Der Rückgabetyp für GetActiveMakeModelInfo() ist hier:
public static List<MakeModelInfo> GetActiveMakeModelInfo() {
return makeModelRepository.GetActiveInfo();
Die Stringdarstellung von MakeModelInfo ist:
namespace Name.Entity.Models {
public class MakeModelInfo {
public int Id { get; set; }
public string Make { get; set; }
public string Model { get; set; }
}
}
Laut der Microsoft-Dokumentation unter https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/introduction/adding-validation dies funktionieren sollte.
Ich bin ziemlich neu bei. Net und ich bin mir nicht sicher, wie Sie dieses Problem beheben. Kann mir jemand einen Vorschlag machen?
Was ist der Rückgabetyp von GetActiveMakeModelInfo? Es scheint, dass es nicht eine Sammlung von Zeichenfolgen zurückgibt, sondern eine Sammlung von Makemodelinfo –
Ich bearbeitet meine Fragen mit dem Rückgabetyp. Bitte vergib mir meinen Mangel an Erfahrung, aber ich könnte Hilfe gebrauchen, um zu verstehen, warum das mein Problem beeinflusst. Vielen Dank. – csharpMind
Nun, Sie vergleichen 'MakeModelInfo' mit einer' Zeichenfolge', die nicht funktioniert. Wie man es repariert?Vergleichen Sie Äpfel mit Äpfeln und Birnen zu Birnen :) – oerkelens