C# Blazor EditForm';模型是在给定上下文中无效的类型';
我有一个简单的模型:C# Blazor EditForm';模型是在给定上下文中无效的类型';,c#,html,asp.net,.net,blazor,C#,Html,Asp.net,.net,Blazor,我有一个简单的模型: using System.ComponentModel.DataAnnotations; namespace BlazorApp.Data { public class DataModel { [Required] [Range(1, 500, ErrorMessage = "Width needs to be above 1m and below 500m")] public int
using System.ComponentModel.DataAnnotations;
namespace BlazorApp.Data
{
public class DataModel
{
[Required]
[Range(1, 500, ErrorMessage = "Width needs to be above 1m and below 500m")]
public int Width { get; set; }
[Required]
[Range(1, 500, ErrorMessage = "Length needs to be above 1m and below 500m")]
public int Length { get; set; }
[Required]
[Range(1, 500, ErrorMessage = "Height needs to be above 1m and below 500m")]
public int Height { get; set; }
}
}
这是我的Razor文件,我正在尝试使用其中的模型:
<EditForm Model="@BlazorApp.Data.DataModel" OnValidSubmit="@Handle"> // ERROR OCCURS HERE
<DataAnnotationsValidator />
<ValidationSummary />
<InputText id="width" @bind-Value="BlazorApp.Data.DataModel.Width" />
<InputText id="length" @bind-Value="BlazorApp.Data.DataModel.Length" />
<InputText id="height" @bind-Value="BlazorApp.Data.DataModel.Height" />
错误发生在Model=“@BlazorApp.Data.DataModel”
中,显然在每个表单的“@bind values”中。为什么会出现这种情况,我不认为namspace数据是一种类型?Model=“@BlazorApp.Data.DataModel”
应该是Model=“@Model”
您需要引用变量(model
)的名称,也就是包含表单所有数据的变量,而不是它的类型名称
您的
InputText
还应该有类似于@bind Value=“model.Height”
的内容。同样,他们需要引用特定的变量,而不是数据类型中的字段。我对@model
如何引用我的自定义DataModel
类感到困惑?您定义了“private BlazorApp.data.DataModel”。这意味着变量“model”是使用“DataModel”类构造的,并且这里的@
是可选的。别说了Model=“Model”
@code {
private BlazorApp.Data.DataModel model = new BlazorApp.Data.DataModel();
private void Handle()
{
}
}