小编sco*_*ker的帖子

Blazor - 无法从“方法组”转换为“EventCallback”

我遇到了一个基本的 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

components blazor blazor-server-side

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

向MVC中的视图添加特定的错误消息

是否可以向视图中的字段添加特定的错误消息?目前,我已经在模型上进行了验证,以检查字段是否为空(ValidationMessageFor <>),并且我正在使用验证摘要来查找特定的错误。我想知道的是,为摘要创建的特定错误消息是否可以代替ValidationMessageFor <>?

模型:

 [Required]
 public string SchoolCode { get; set; }
Run Code Online (Sandbox Code Playgroud)

视图:

@Html.ValidationSummary("", new { @class = "text-danger" })
@Html.EditorFor(m => m.SchoolCode, new { htmlAttributes = new { @class = "form-control", @placeholder = "School Code" } })

@Html.ValidationMessageFor(model => model.SchoolCode, "", new { @class = "text-danger" })
Run Code Online (Sandbox Code Playgroud)

控制器:

var schoolExists = RepositoryHelper.GetSchoolByCode(model.SchoolCode);
if (schoolExists == null)
{
    ModelState.AddModelError(string.Empty, @"No school exists with this code");
    return View(model);
}
if (ModelState.IsValid)
{
    //do other stuff
}
Run Code Online (Sandbox Code Playgroud)

因此,如果模型状态无效,则返回模型错误,但是如果输入了错误的代码,则会在验证摘要中添加“此代码不存在任何学校”。我可以用学校代码摘要错误替换学校代码模型错误吗?

validation asp.net-mvc razor

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

使用默认的 asp.net mvc 模板时,Html 未正确插入到电子邮件中

使用默认的 mvc 代码在注册时确认电子邮件地址,但是当电子邮件被发送时,它没有显示 html。 在此处输入图片说明 模板MVC代码:

string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" +
                    callbackUrl + "\">here</a>");
Run Code Online (Sandbox Code Playgroud)

发送电子邮件异步:

 public Task SendAsync(IdentityMessage message)
    {

        // Plug in your email service here to send an email.
        SmtpClient client = new SmtpClient();
        return client.SendMailAsync("email here",
                                    message.Destination,
                                    message.Subject,
                                    message.Body);
        return Task.FromResult(0);
    }
Run Code Online (Sandbox Code Playgroud)

在查看有关 SO 的其他一些问题时,我稍微更改了发送代码,以便可以将正文设置为允许使用 html,但我仍然遇到相同的问题

  public Task …
Run Code Online (Sandbox Code Playgroud)

asp.net email asp.net-mvc

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