小编tom*_*dox的帖子

如何在组件外部放置 Blazor EditForm 的提交按钮

Blazor 文档的表单验证示例EditForm组件中有一个提交按钮组件:

    <EditForm Model="@starship" > OnValidSubmit="@HandleValidSubmit">
        <DataAnnotationsValidator />
        <ValidationSummary />
    
        <p>
            <label for="identifier">Identifier: </label>
            <InputText id="identifier" bind Value="@starship.Identifier" />
        </p>
    
        Snip....

        <button type="submit">Submit</button>

        Snip...

    </EditForm>
Run Code Online (Sandbox Code Playgroud)

无论如何,是否可以将该提交按钮放置在标签之外EditForm并且仍然“本机”触发该EditForm组件的提交,而无需使用 JavaScript?

即代码看起来像这样:

    <!-- Want this button to submit the form in the EditForm tags-->
    <button type="submit">Submit</button>

    Snip...

    <EditForm Model="@starship" OnValidSubmit="@HandleValidSubmit">
        <DataAnnotationsValidator />
        <ValidationSummary />
    
        <p>
            <label for="identifier">Identifier: </label>
            <InputText id="identifier" bind-Value="@starship.Identifier" />
        </p>
    </EditForm>
Run Code Online (Sandbox Code Playgroud)

blazor blazor-server-side

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

迁移到.NET Core 3后,出现“项目'Web'必须提供配置值”错误

我已经将ASP.NET Core 2.2项目迁移到Core 3.0,并且收到错误消息:

项目[项目位置]必须为Configuration提供一个值。

该错误消息并没有太多处理,有人知道如何解决该错误吗?

This looks like it could be similar to this issue on the dotnet cli github repo.

.net-core asp.net-core .net-core-3.0

12
推荐指数
4
解决办法
1711
查看次数

在React中格式化数字时停止光标跳转

我的反应组件上有一个输入字段,显示项目的行价(两个小数位,有千位分隔符).我希望当组件首次呈现时显示的值为货币格式,并且还要作为字段中的用户类型以货币格式保存.

目前我的组件中有以下代码:

var React = require('react');
import accounting from 'accounting';

MoneyInput = React.createClass({
    propTypes: {
        name: React.PropTypes.string.isRequired,
        onChange: React.PropTypes.func.isRequired,
        value: React.PropTypes.number,
        error: React.PropTypes.string,
    },

    onChange(event) {
        // get rid of any money formatting
        event.target.value = accounting.unformat(event.target.value);

        // pass the value on
        this.props.onChange(event);
    },

    getValue() {
        return accounting.formatNumber(this.props.value, 2)
    },

    render() {

        return (
                <div className="field">
                    <input type="text"
                           name={this.props.name}
                           className="form-control"
                           value={this.getValue()}
                           onChange={this.onChange} />
                    <div className="input">{this.props.error}</div>
                </div>
        );
    }
});

module.exports = MoneyInput;
Run Code Online (Sandbox Code Playgroud)

该代码显示正确格式化的数据,但每次输入值时,光标都会跳转到数字的末尾.

我理解为什么会发生这种情况(我认为),并且我在这里阅读了几个与不在JavaScript中丢失光标位置有关的问题(例如这里这里).

我想知道在React中处理这个问题的最佳方法是什么?我认为理想情况下我不希望将光标位置存储在状态中(例如,我希望这些是Dan Abramov语法中的Presentation …

reactjs react-jsx

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

在同一项目中同时使用 AddDbContextFactory() 和 AddDbContext() 扩展方法

我正在尝试使用EF Core 文档的 DbContext 配置部分中DbContextFactory讨论的新模式。

我已经DbContextFactory在我的 Blazor 应用程序中成功启动并运行,但我想保留DbContext直接注入实例的选项,以保持我现有的代码正常工作。

但是,当我尝试这样做时,出现以下错误:

System.AggregateException:无法构造某些服务(验证服务描述符“ServiceType: Microsoft.EntityFrameworkCore.IDbContextFactory 1[MyContext] Lifetime: Singleton ImplementationType: Microsoft.EntityFrameworkCore.Internal.DbContextFactory1[MyContext]”时出错:无法使用范围服务“Microsoft.EntityFrameworkCore.DbContextOptions 1[MyContext]' from singleton 'Microsoft.EntityFrameworkCore.IDbContextFactory1[MyContext]”。) ---> System.InvalidOperationException:验证服务描述符“ServiceType:Microsoft.EntityFrameworkCore.IDbContextFactory 1[MyContext] Lifetime: Singleton ImplementationType: Microsoft.EntityFrameworkCore.Internal.DbContextFactory1[MyContext]”时出错:无法使用范围服务“Microsoft.EntityFrameworkCore.DbContextOptions 1[MyContext]' from singleton 'Microsoft.EntityFrameworkCore.IDbContextFactory1[MyContext]”。---> System.InvalidOperationException:无法使用范围服务“Microsoft.EntityFrameworkCore.DbContextOptions 1[MyContext]' from singleton 'Microsoft.EntityFrameworkCore.IDbContextFactory1[MyContext]”。

在试验时,我还设法在某一时刻得到了这个错误:

无法从根提供程序解析范围服务“Microsoft.EntityFrameworkCore.DbContextOptions`1[MyContext]”。

它是理论上可以同时使用AddDbContextAddDbContextFactory在一起?

c# entity-framework dependency-injection ef-core-3.1 ef-core-5.0

11
推荐指数
3
解决办法
3425
查看次数

如何在VS 2013 Professional版上安装Microsoft Fakes(单元测试隔离)

我想开始使用Visual Studio 2013 Professional中的Microsoft Fakes框架编写单元测试用例.

请告知我如何实现这一目标.

unit-testing microsoft-fakes visual-studio-2013

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

将第 3 方 DLL 包含在从 VS csproj 生成的 NuGet 包中

我正在尝试从 VS 2017 项目创建一个 NuGet 包,其中包含对第 3 方 DLL (Kendo.mvc.dll) 的引用。无论我如何尝试,我都无法nuget pack自动将该 DLL 包含在 NuGet 包的 lib 文件夹中。

我最初.nuspec使用命令从命令行创建了该文件nuget spec [project's name and path].csproj。然后我调整了该文件的设置,生成了这个 .nuspec 文件:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>our names</authors>
    <owners>$author$</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>the description</description>
    <releaseNotes>First release</releaseNotes>
    <copyright>Copyright 2018</copyright>
    <tags>entity-framework-6 mvc5</tags>
  </metadata>
</package>
Run Code Online (Sandbox Code Playgroud)

然后我用来nuget pack创建包,结果是这样的:

软件包内容显示不包含第 3 方 DLL

根据我在文档(MS Docs - 创建 NuGet 包)中读到的内容,我期望nuget pack自动将项目中引用的任何非 nuget 来源的 DLL 包含在包中,但这并没有发生?

我尝试了以下方法,看看是否有任何区别,但都无济于事:

  • lib文件夹添加到项目的根目录并将 DLL 放入其中(并尝试更改“生成操作”和“复制到输出目录”设置)。这会在 NuGet …

visual-studio nuget nuget-spec

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

@context 是什么?为什么它是红色的?

我在 blazor 服务器端应用程序中使用 BlazoredTypeahead 组件,我想知道 @context 关键字来自哪里。

以下代码运行正常,但 VS 报告它无法解析符号“上下文”。当然,我很好奇它为什么有效以及上下文来自哪里。

@inject IEquipmentService EquipmentService
@inject AppDataService AppDataService
<h3>ModelSelect</h3>

<BlazoredTypeahead SearchMethod="SearchModels"
                   @bind-Value="equipModel">
    <SelectedTemplate>
        @context.model
    </SelectedTemplate>
    <ResultTemplate>
        @context.model (@context.model_desc)
    </ResultTemplate>
</BlazoredTypeahead>

@if (equipModel != null)
{
    <p>Selected model is: @equipModel.model</p>
}

@code {


    private EquipModel equipModel;


    private async Task<IEnumerable<EquipModel>> SearchModels(string searchText)
    {
        var result = await EquipmentService.SearchModels(AppDataService.CurrentContact, searchText);

        return await Task.FromResult(result.ToList());
    }


}
Run Code Online (Sandbox Code Playgroud)

c# blazor

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

无法找到请求的.Net Framework数据提供程序.它可能没有安装.vs 2010和sql server 2008表达

在VS 2010中,我使用以下步骤连接到SQL Server数据库:

  1. 在服务器资源管理器窗口中,右键单击数据连接
  2. 单击添加连接
  3. 在选择数据源窗口中,选择SQL Server
  4. 单击继续,按钮
  5. 将出现"添加连接"窗口
  6. 在服务器名称文本框中键入".\ sqlexpress"
  7. 在select或enter数据库名称中输入"Person"
  8. 单击测试连接 - 我看到"测试连接成功"
  9. 最后单击OK按钮

在第9步,我看到这个错误:"无法找到所请求的.Net Framework数据提供程序可能无法安装"

c# visual-studio-2010

8
推荐指数
1
解决办法
2万
查看次数

使用哪种ReactJS语法; React.createClass还是ES6扩展?

我是ReactJS的初学者.我在各种网站上学习和研究了很多文档和电子书.我意识到ReactJS有两种语法.例:

React.createClass({
  displayName: 'Counter',
  getDefaultProps: function(){
    return {initialCount: 0};
  },
  getInitialState: function() {
    return {count: this.props.initialCount} 
  },
  propTypes: {initialCount: React.PropTypes.number},
  tick() {
    this.setState({count: this.state.count + 1});
  },
  render() {
    return (
      <div onClick={this.tick}>
        Clicks: {this.state.count}
      </div>
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

这个版本是由ES6编写的:

class Counter extends React.Component {
  static propTypes = {initialCount: React.PropTypes.number};
  static defaultProps = {initialCount: 0};

  constructor(props) {
    super(props);
    this.state = {count: props.initialCount};
  }

  state = {count: this.props.initialCount};
  tick() {
    this.setState({count: this.state.count + 1});
  }

  render() {
    return (
      <div onClick={this.tick.bind(this)}> …
Run Code Online (Sandbox Code Playgroud)

syntax ecmascript-6 reactjs react-jsx

8
推荐指数
2
解决办法
3291
查看次数

是否可以在非 .NET 网站中嵌入 Blazor 组件?

我们想为我们的一个客户开发一个客户端 Blazor 组件,以嵌入到他们网站的页面中。该网站是用 Drupal 编写的,但我的问题实际上是指将 Blazor 集成到任何非 ASP.NET 网站中。

来自https://www.nativoplus.studio/blog/blazor-introduction/ 的这张图片似乎表明这应该是可能的,因为没有一个运行时部分依赖于 .NET 主机:

显示开发时间和运行时元素的 Blazor 架构图

据我了解,客户端 Blazor 组件使用 WASM 和 JavaScript 的组合进行互操作运行,因此似乎应该可以在任何网站上嵌入 Blazor 组件,而不仅仅是用 .NET 编写的网站?

(可能 Mono.wasm 也可能需要存在,我不确定它是否仅用于将我们的 C# 客户端应用程序编译为 wasm,或者在运行应用程序时是否也需要这样做?)

这在理论上是可能的,还是我错过了一些明显的东西,使它成为一个非首发?

如果是这样,任何人都可以举例说明我们需要告诉我们客户的网站公司将哪些文件添加到该站点以及这些文件应位于何处?

blazor

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