Blazor 文档的表单验证示例在EditForm组件中有一个提交按钮组件:
Run Code Online (Sandbox Code Playgroud)<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>
无论如何,是否可以将该提交按钮放置在标签之外,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) 我已经将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.
我的反应组件上有一个输入字段,显示项目的行价(两个小数位,有千位分隔符).我希望当组件首次呈现时显示的值为货币格式,并且还要作为字段中的用户类型以货币格式保存.
目前我的组件中有以下代码:
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 …
我正在尝试使用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.DbContextOptions1[MyContext]' from singleton 'Microsoft.EntityFrameworkCore.IDbContextFactory1[MyContext]”。) ---> System.InvalidOperationException:验证服务描述符“ServiceType:Microsoft.EntityFrameworkCore.IDbContextFactory1[MyContext] Lifetime: Singleton ImplementationType: Microsoft.EntityFrameworkCore.Internal.DbContextFactory1[MyContext]”时出错:无法使用范围服务“Microsoft.EntityFrameworkCore.DbContextOptions1[MyContext]' from singleton 'Microsoft.EntityFrameworkCore.IDbContextFactory1[MyContext]”。---> System.InvalidOperationException:无法使用范围服务“Microsoft.EntityFrameworkCore.DbContextOptions1[MyContext]' from singleton 'Microsoft.EntityFrameworkCore.IDbContextFactory1[MyContext]”。
在试验时,我还设法在某一时刻得到了这个错误:
无法从根提供程序解析范围服务“Microsoft.EntityFrameworkCore.DbContextOptions`1[MyContext]”。
它是理论上可以同时使用AddDbContext和AddDbContextFactory在一起?
c# entity-framework dependency-injection ef-core-3.1 ef-core-5.0
我想开始使用Visual Studio 2013 Professional中的Microsoft Fakes框架编写单元测试用例.
请告知我如何实现这一目标.
我正在尝试从 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创建包,结果是这样的:
根据我在文档(MS Docs - 创建 NuGet 包)中读到的内容,我期望nuget pack自动将项目中引用的任何非 nuget 来源的 DLL 包含在包中,但这并没有发生?
我尝试了以下方法,看看是否有任何区别,但都无济于事:
lib文件夹添加到项目的根目录并将 DLL 放入其中(并尝试更改“生成操作”和“复制到输出目录”设置)。这会在 NuGet …我在 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) 在VS 2010中,我使用以下步骤连接到SQL Server数据库:
在第9步,我看到这个错误:"无法找到所请求的.Net Framework数据提供程序可能无法安装"
我是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) 我们想为我们的一个客户开发一个客户端 Blazor 组件,以嵌入到他们网站的页面中。该网站是用 Drupal 编写的,但我的问题实际上是指将 Blazor 集成到任何非 ASP.NET 网站中。
来自https://www.nativoplus.studio/blog/blazor-introduction/ 的这张图片似乎表明这应该是可能的,因为没有一个运行时部分依赖于 .NET 主机:
据我了解,客户端 Blazor 组件使用 WASM 和 JavaScript 的组合进行互操作运行,因此似乎应该可以在任何网站上嵌入 Blazor 组件,而不仅仅是用 .NET 编写的网站?
(可能 Mono.wasm 也可能需要存在,我不确定它是否仅用于将我们的 C# 客户端应用程序编译为 wasm,或者在运行应用程序时是否也需要这样做?)
这在理论上是可能的,还是我错过了一些明显的东西,使它成为一个非首发?
如果是这样,任何人都可以举例说明我们需要告诉我们客户的网站公司将哪些文件添加到该站点以及这些文件应位于何处?
blazor ×3
c# ×3
react-jsx ×2
reactjs ×2
.net-core ×1
asp.net-core ×1
ecmascript-6 ×1
ef-core-3.1 ×1
ef-core-5.0 ×1
nuget ×1
nuget-spec ×1
syntax ×1
unit-testing ×1