小编Jim*_*ell的帖子

Angular 2禁用控件不包含在form.value中

我注意到如果我禁用Angular 2反应形式的控件,那么控件不会包含在form.value中.例如,如果我定义我的表单如下:

this.notelinkingForm = new FormGroup({
    Enabled: new FormControl(settings.Enabled, Validators.required),
    LinkToPreceeding: new FormControl({value: settings.LinkToPreceeding, disabled: !settings.Enabled}, Validators.required),
    LinkingTolerance: new FormControl({value: settings.LinkingTolerance, disabled: !settings.Enabled}, Validators.required)
});
Run Code Online (Sandbox Code Playgroud)

并检查this.notelinkingForm.value,如果启用了所有控件,则输出将为:

{"Enabled":true, "LinkToPreceeding": true, LinkingTolerance:"100"} 
Run Code Online (Sandbox Code Playgroud)

但是,当某些控件被禁用时,它将是:

{"Enabled":true} 
Run Code Online (Sandbox Code Playgroud)

请注意如何排除禁用的控件.

我的意图是,当表单更改时,我希望能够将form.value与其中的所有属性一起传递给我的rest API.如果它不包含禁用的项目,这显然是不可能的.

我在这里遗漏了什么或这是预期的行为吗?有没有办法告诉Angular在form.value中包含禁用的项目?

欢迎你的想法.

angular2-forms angular

88
推荐指数
3
解决办法
2万
查看次数

在Entity Framework 4.3中逐步种子数据的最佳方法

我一直在现有数据库上使用Entity Framework 4.3,我有几个我想要满足的场景.

首先,如果我删除我的数据库,我希望EF从头开始重新创建 - 我已成功使用CreateDatabaseIfNotExists数据库初始化程序.

其次,如果我更新我的模型并且数据库已经存在,我希望数据库自动更新 - 我已成功使用Entity Framework 4.3 Migrations.

所以这是我的问题.假设我在模型中添加了一个新表,这需要一些参考数据,这是确保在数据库intialiser运行时以及迁移运行时创建此数据的最佳方法.我的愿望是,当我从头开始创建数据库时,以及当数据库因迁移运行而更新时,会创建数据.

在一些EF迁移示例中,我看到人们在迁移的UP方法中使用SQL()函数来创建种子数据,但如果可能,我宁愿使用上下文来创建种子数据(正如您在大多数数据库初始化示例中看到的那样)因为我觉得很奇怪,当EF的整个想法抽象出来时,你会使用纯粹的SQL.我曾尝试在UP方法中使用上下文,但出于某种原因,当我尝试在创建表的调用下直接添加种子数据时,它并不认为迁移中创建的表存在.

任何智慧都非常感激.

entity-framework ef-migrations entity-framework-4.3

41
推荐指数
2
解决办法
3万
查看次数

在MVC4 RTM中从ASP.NET成员身份迁移到SimpleMembership

新的MVC4 RTM互联网应用程序模板使用SimpleMembership提供程序,如SimpleMembership所述

我现有的MVC网站使用ASP.Membership框架,理想情况下我想将这些表中的用户数据迁移到新的SimpleMembership表.我想要这样做的原因是:

  1. 与我使用EF的数据库的其余部分进行更清洁的集成
  2. 开箱即用支持Azure和OAuth
  3. 使用最新的MVC4 RTM控制器/视图,无需修改
  4. 我一直觉得现有的会员实施对我需要的东西有点膨胀

所以我今天编写了一个SQL脚本,将现有ASP.Net Membership表中的数据迁移到新的Simple Membership表中.这可以在这里找到

在我的MVC 4网站上测试登录密码验证失败.我相信SimpleMembership使用与旧的Membership框架不同的密码算法,因为在SimpleMemberShip框架下创建的新密码看起来要长得多.

所以我的问题是,因为我在旧的ASP.Net成员资格提供程序中使用"哈希"密码格式,并且用户原始密码无法恢复,我有什么选择让SimpleMembership提供程序正常工作.

我猜一些选项是:

  1. 让我的用户重置他们的密码
  2. 让SimpleMembership提供程序使用与旧的ASP.Net成员资格提供程序相同的密码算法.
  3. 恢复新的MVC 4 RTM互联网应用程序模板以使用旧的ASP.Net MemberShip提供程序.这对我来说是最不可取的选择,因为我想使用SimpleMemberShip框架.

我怀疑很多人也希望将现有的会员数据库迁移到新的SimpleMemberShip提供商.

任何帮助非常感谢.

干杯

吉姆

asp.net asp.net-mvc asp.net-membership asp.net-mvc-3 asp.net-mvc-4

27
推荐指数
3
解决办法
1万
查看次数

在 Entity Framework Core 中记录长时间运行的查询

我想将任何运行时间超过 1 秒的 Entity Framework Core 查询/命令记录到 Serilog。理想情况下,我想记录生成的 SQL 以及运行所需的时间。

欢迎任何关于如何最好地实现这一目标的想法。我正在使用 EF Core 2.1。

c# entity-framework-core

7
推荐指数
0
解决办法
554
查看次数

Elasticsearch中的不区分大小写的字段

我正在使用NEST和ElasticSearch,我尝试通过允许用户在搜索框中键入搜索短语来进行搜索.除了用户输入他们需要的搜索短语以确保字段名称与弹性搜索中的字段名称相同的情况之外,一切正常.

例如,我的一个字段叫做bookTitle.如果他们搜索如下,那么它的工作原理

bookTitle:"双城记"

如果他们像下面的例子一样搜索它不起作用

书签:"双城记"书名:"双城记"

我用来搜索的代码如下.有没有人对如何解决这个问题有任何想法.我希望有一个ElasticSearch/NEST设置允许我这样做,而不是用搜索文本做一些丑陋的事情,比如查找"BookTitle"并替换为"bookTitle".

   public List<ElasticSearchRecord> Search(string searchterm) {

        var results = _client.Search<ElasticSearchRecord>(s => s
                        .Query(q => q
                            .QueryString(qs => qs
                                .DefaultField("content")
                                .Query(searchterm)
                            )
                        ));


        return results.Documents.ToList();
    }
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢.

elasticsearch nest

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

Amazon和Evernote的身份验证设置

如果您参考https://docs.microsoft.com/zh-cn/aspnet/core/migration/1x-to-2x/identity-2x?view=aspnetcore-2.2,则可以看到可以配置OpenID Connect(OIDC)各种提供商的身份验证如下:

脸书

services.AddAuthentication()
        .AddFacebook(options =>
        {
            options.AppId = Configuration["auth:facebook:appid"];
            options.AppSecret = Configuration["auth:facebook:appsecret"];
        });
Run Code Online (Sandbox Code Playgroud)

谷歌

services.AddAuthentication()
        .AddGoogle(options =>
        {
            options.ClientId = Configuration["auth:google:clientid"];
            options.ClientSecret = Configuration["auth:google:clientsecret"];
        });
Run Code Online (Sandbox Code Playgroud)

微软

services.AddAuthentication()
        .AddMicrosoftAccount(options =>
        {
            options.ClientId = Configuration["auth:microsoft:clientid"];
            options.ClientSecret = Configuration["auth:microsoft:clientsecret"];
        });
Run Code Online (Sandbox Code Playgroud)

我的问题是,是否有人需要提供支持Amazon和Evernote OIDC的设置?

c# oauth-2.0 asp.net-identity identityserver4

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

如何在Windows上使用https运行Vue-cli项目

我正在尝试使用https运行vue-cli项目。

按照此处的说明,如何通过https运行Vue.js dev服务?

我已经将https设置添加到vue.config.js如下

module.exports = {
  devServer: {
    https: true
  },
Run Code Online (Sandbox Code Playgroud)

当我运行该应用程序时,它正确地以https:// localhost:8080运行,但是Chrome抛出ERR_CERT_AUTHORITY_INVALID错误。

看来我需要在Windows中设置SSL证书并在vue.config.js中进行一些配置。有谁知道如何做到这一点?注意,此问题专门适用于Windows。

ssl-certificate vue.js vuejs2

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