我在我的代码中添加了一个自定义验证属性,它在服务器端工作得很好。但是,在客户端,方法和适配器已注册,但从未调用验证函数。
我正在使用 MVC 在 .NET Core 2.2 中工作。我已经按照其他地方的建议删除了 $(Document).Ready 包装器,并验证了所有的大小写匹配。
下面是一个MRE
测试验证属性:
public class TestValidationAttribute : ValidationAttribute, IClientModelValidator
{
public TestValidationAttribute(string name)
{
_name = name;
}
private string _name;
protected override ValidationResult IsValid(Object value, ValidationContext validationContext)
{
return new ValidationResult($"{_name} has been validated");
}
void IClientModelValidator.AddValidation(ClientModelValidationContext context)
{
context.Attributes.Add("data-val", "true");
context.Attributes.Add("data-val-testvalidation", $"{_name} has been validated client side");
context.Attributes.Add("data-val-testvalidation-name", _name);
}
}
Run Code Online (Sandbox Code Playgroud)
该模型:
public class TestModel
{
[TestValidation("Hello World!")]
[Display(Name = "Test Value")]
public string TestValue { get; set; } …
Run Code Online (Sandbox Code Playgroud) 尝试打开 SQLite 连接时出现异常“无法打开数据库文件:[路径](误用)”。
我正在创建一个 Xamarin.Forms 应用程序,并在 UWP 中进行调试,这是我收到异常的地方。
我的数据存储类的构造函数创建连接和表:
internal static string DBPath
{
get
{
const string FILE_NAME = "TheRandomizer.db3";
if (Device.RuntimePlatform == Device.Android)
{
return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), FILE_NAME);
}
else
{
return Path.Combine(ApplicationData.Current.LocalFolder.Path, FILE_NAME);
}
}
}
public SqliteDataStore()
{
_database = new SQLiteAsyncConnection(DBPath, SQLiteOpenFlags.Create);
// Fails trying to perform this action:
_database.CreateTableAsync<GeneratorTable>().Wait();
_database.CreateTableAsync<TagTable>().Wait();
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
在 System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken CancellationToken) 在 System.Threading.Tasks.Task.Wait() 在 TheRandomizer.Services.SqliteDataStore..ctor() 在 TheRandomizer.ViewModels.BaseViewModel.get_DataStore()在TheRandomizer.ViewModels.GeneratorListViewModel.ExecuteLoadItemsCommand()