我已经在 Microsoft Visual Studio Community 2019 版本 16.1.3 的 Blazor 中设置了基本应用程序,并且我已经尝试了 .NET Core SDK 3.0.100-preview5-011568 和 SDK 3.0.100-preview6-012264 的两个版本。
此外,我已经安装了 Blazor 扩展,但是当我在没有对任何文件进行任何修改的情况下进行构建时,构建失败并出现以下错误:
“找不到类型或命名空间“App”。
任何帮助将不胜感激。谢谢。
如何将参数传递给 razor 组件?
到目前为止我试过
@(await Html.RenderComponentAsync<Rateplan>(RenderMode.ServerPrerendered, new { id= 100}))
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误
InvalidOperationException:不支持使用参数预呈现服务器组件。
我用 RenderMode.ServerPrerendered 尝试了同样的事情,但我收到一个错误
InvalidOperationException: 不支持带有参数的服务器组件。
我也试过做
<Rateplan Id="100"></Rateplan>
Run Code Online (Sandbox Code Playgroud)
但这甚至没有启动组件。
我想要做的是当用户按下一个键时更新变量值,但它只更新输入模糊时的值。
以下代码不起作用。
<p>@increment</p>
<input
type="text"
@onchange="@((ChangeEventArgs e) =>
increment = e.Value.ToString())"
/>
@code {
string increment;
}
Run Code Online (Sandbox Code Playgroud)
使用@bind和@bind-value也不起作用。
我用这个例子做了一个blazorfiddle。
当按下 a 键时,谁能改变我的变量的值?
使用 AspNet Blazor 及其 EditForm:我正在创建一个简单的表单,它应该包含一个更新和一个删除按钮。我似乎没有找到任何关于如何将参数传递给提交的示例。
我试图在删除按钮中放置一个@onclick 指向DeleteObject,但后来我没有得到验证(在这种情况下我实际上不需要验证,但无论如何我都想这样做),而且在之后也调用了 SaveObject删除...
<EditForm Model="@selectedCar" OnValidSubmit="@SaveObject">
<DataAnnotationsValidator />
<ValidationSummary />
....My <InputText>'s for all values I have in my object
<button type="submit" class="btn btn-primary" value="Save">Spara</button>
<button type="submit" class="btn btn-primary" value="Delete">Delete</button>
</EditForm>
@code {
[Parameter]
public string Id { get; set; }
CarModel selectedCar;
protected override async Task OnInitializedAsync()
{
selectedCar = await _CarService.GetCar(int.Parse(Id));
}
protected async Task SaveObject()
{
selectedCar.Id = await _CarService.SaveCar(selectedCar);
}
protected async Task DeleteObject(int Id)
{
selectedCar.Id = await _CarService.DeleteCar(selectedCar);
} …Run Code Online (Sandbox Code Playgroud) 我遇到了一个基本的 blazor 项目的问题。我有一个父组件和一个带有事件回调的子组件,我希望它传回一种类型的 T。我遇到的问题是我在将 MethodGroup 转换为 EventCallback 时出错。如果我将其转换为使用 Action 则它可以工作,但我不能异步执行,这并不理想。任何想法我做错了什么?
家长
<Child
DeleteCallback="@OnDelete"></Child>
public async Task OnDelete(T item)
{
}
Run Code Online (Sandbox Code Playgroud)
孩子
@typeparam T
[Parameter]
public EventCallback<T> DeleteCallback { get; set; }
<a @onclick="() => DeleteCallback.InvokeAsync(item)"></a>
Run Code Online (Sandbox Code Playgroud)
我在这里添加了一个 repo 来解释这个问题。查看 Blazor 的问题,这应该已在 2019 年修复。https://github.com/scott-david-walker/EventCallbackError
我在启用可为 null 的项目中使用 .net 5 作为 Blazor 应用程序。它使用代码隐藏来创建 Blazor 组件。我想使用构造函数,这样我就可以避免将每个非 DI 属性标记为可为空,以简化在 blazor 代码中对它们的访问。但是,如果我创建一个像这样的构造函数
public PageNumberOne(ILogger<PrimaryItem> logger) {}
我收到错误MissingMethodException: 没有为类型定义无参数构造函数
如果我在 DI 项上使用注入属性,则会收到警告 -当激发构造函数时,不可为空的属性 _logger 必须包含非空值
那么如何将 DI 与可为 null 混合,而不只是将每个属性标记为可为 null?
我还可以在“代码”块的主体中创建它们,但随后我无法访问我的 DI 项进行初始化,因为它们在 OnInitialized 之前不可用。所以我必须再次将它们标记为可为空。
由于 Blazor 是一个 SPA 框架,我想知道是否可以为 Blazor 中的每个单独页面设置页面标题?
我目前正在研究 Blazor webassembly 项目,但无法弄清楚如何添加页面标题的方法,因为它应该在 SPA 中只有一个 index.html,但如果可以实现为每个设置标题,那将非常有用“页”。
IP 地址等。通常,当用户询问如何在 Server Blazor 应用程序中执行此操作时,他们要么被告知这是不可能的,要么有时会提供使用 JSInterop 的部分解决方案。但是可以在不诉诸 JSInterop 的情况下完成吗?这是答案...
我在最新版本的 VS 2019 中使用 blazor 3.1。
到目前为止,我能够本地化页面标签(标题、表格字段等)。
在ListEmployee.razor页面上,我能够本地化表格标题等。在AddEmplyeeValidation.razor页面上,我能够本地化表单标签,但我在本地化验证消息时遇到了问题。
对于Employee.cs文件的验证消息,验证消息Resources/Data在 files的文件夹中定义Data.Employee.resx,Data.Employee.ar.resx但这似乎不起作用。
using System.ComponentModel.DataAnnotations;
namespace BlazorSPA1.Data
{
public class Employee
{
[MaxLength(50)]
public string Id { get; set; }
[Required (ErrorMessage ="Name is RRRequired")]
[StringLength(20, ErrorMessage = "Name is too long.")]
public string Name { get; set; }
[Required]
[StringLength(20)]
public string Department { get; set; }
[MaxLength(100)]
public string Designation { get; set; }
[MaxLength(100)]
public string Company { …Run Code Online (Sandbox Code Playgroud) c# asp.net-core asp.net-core-localization blazor blazor-server-side
我有以下代码用于 InputSelect
<InputSelect class="form-control form-control form-control-sm"
placeholder="Role"
disabled="@IsReadOnly"
@bind-Value="Model.Role"
@onchange="@RoleChanged">
<option value="Member">Member</option>
<option value="Admin">Admin</option>
<option value="Pioner">Pioneer</option>
<option value="Retailer">Retailer</option>
</InputSelect>
Run Code Online (Sandbox Code Playgroud)
对于代码:
bool ShowCreated;
bool ShowUpdated;
bool IsReadOnly;
string SelectedRole;
public EditForm AccountForm;
public Multi.Dtos.RegistrationDto Model = new Dtos.RegistrationDto() { Role = "Member" };
public void RoleChanged(ChangeEventArgs e)
{
SelectedRole = e.Value.ToString();
Console.WriteLine(e.Value);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试选择一个新项目时,不会调用 RoleChange 函数。有人可以指出这有什么问题吗。正确的值已更改,但未调用事件。