无法通过 jQuery 读取 Razor 设置的属性,为什么?

Unable to read attribute set by Razor through jQuery, why?

console.log(myvar) 在不应该的时候显示 undefined。最后一个 console.log shows 正是完整的标签,我可以看到 data-mydata 有一个值。为什么会这样?

@foreach (var item in Model) {
<div class="row">
  <label class="col-md-offset-3 col-md-9">
    <input type="radio" class="myclass" id="@item.Id" name="myname" onchange="myHandler()" value="@item.property" data-mydata="@Html.Encode(item.property2)"/>
    @item.Name
  </label>
</div>
}

<script>
  function myHandler() {
    var myvar = $(this).data('mydata');
    console.log(myvar);
    console.log($("input[name='myName']:checked")[0]);
  }
</script>

尝试将 this 传递给 myHandler:

@foreach (var item in Model) {
<div class="row">
  <label class="col-md-offset-3 col-md-9">
    <input type="radio" class="myclass" id="@item.Id" name="myname" onchange="myHandler(this)" value="@item.property" data-mydata="@Html.Encode(item.property2)"/>
    @item.Name
  </label>
</div>
}

<script>
  function myHandler(t) {
    var myvar = $(t).data('mydata');
    console.log(myvar);
    console.log($("input[name='myName']:checked")[0]);
  }
</script>