我試圖驗證使用輸入提前的幾個用戶輸入字段。我想拒絕任何不包含在提前輸入列表中的輸入。如何修復錯誤:參數1:無法從'字符串'轉換爲'Name.Entity.Models.MakeModelInfo
但我對代碼的 'VAR的isValid' 線得到一個編譯錯誤,當我嘗試運行我的應用程序:
我的視圖模型
[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; }
我的控制器
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;
}
}
GetActiveMakeModelInfo()的返回類型在這裏:
public static List<MakeModelInfo> GetActiveMakeModelInfo() {
return makeModelRepository.GetActiveInfo();
MakeModelInfo的字符串表示:
namespace Name.Entity.Models {
public class MakeModelInfo {
public int Id { get; set; }
public string Make { get; set; }
public string Model { get; set; }
}
}
據當時https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/introduction/adding-validation Microsoft文檔這應該工作。
我在.Net很新,我不知道如何解決這個問題。任何人都可以提供建議嗎?
什麼是GetActiveMakeModelInfo的返回類型?它似乎沒有返回字符串的集合,而是一組makemodelinfo –
我使用返回類型編輯了我的問題。請原諒我缺乏經驗,但我可以用一些幫助來理解爲什麼會影響我的問題。謝謝。 – csharpMind
好吧,您正在比較'MakeModelInfo'和'string',這是行不通的。如何解決它?蘋果和梨比較蘋果梨:) – oerkelens