小编Lan*_*nce的帖子

自定义客户端验证未在 ASP.NET Core 中触发

我在我的代码中添加了一个自定义验证属性,它在服务器端工作得很好。但是,在客户端,方法和适配器已注册,但从未调用验证函数。

我正在使用 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)

c# jquery unobtrusive-validation asp.net-core

1
推荐指数
1
解决办法
4151
查看次数

无法打开数据库文件(误用)SqlLiteAsyncConnection

尝试打开 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)

完整的源代码可以在我的 GitHub 上查看。

堆栈跟踪:

在 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()

c# sqlite xamarin.forms uwp

-1
推荐指数
1
解决办法
2264
查看次数