处理 Razor Pages 中的焦点事件

Handle onfocus event in Razor Pages

我有 <textarea /> 行,我想处理 onfocusonblur 事件并传递行数据。根本无法正常工作。

<div>
  @foreach (Person p in People){
    <textarea rows="4" onfocus="@hasFocus(p)" onblur="@lostFocus(p)">p.Name</textarea>
  }
</div>
  public void hasFocus(Person p) {
    ...
  }

事件没有触发。

这对我有用:


<div>
  @foreach (Person p in People){
    <textarea rows="4" 
      @onfocus="@( () => hasFocus(p) )" 
      @onblur="@( () => lostFocus(p) )">
        p.Name
    </textarea>
  }
</div>

根据docs,事件属性名称是@on{eventname}。 然后使用 lambda 传递你的 person 参数。

使用@onfocus 和@onblur

<textarea rows="4" @onfocus="hasFocus" @onblur="lostFocus">p.Name</textarea>

public void hasFocus(FocusEventArgs args)
{
}

public void lostFocus(FocusEventArgs args)
{
}

如果您只使用 onfocus,它将是一个 html 属性而不是一个事件监听器。

要传递您的 person 对象,您需要这样的操作

 @onfocus="(args) => hasFocus(p)"