parameters - Blazor 3.1 Component Tag Helper 参数

标签 parameters components blazor

我正在尝试使用 3.1 中的新标记助手将参数传递到 Razor 页面上的 Blazor 组件,它使用整数类型,但如果我更改为字符串,则会引发错误。我错过了什么?

组件:

<p>Test Parameter: @TestParameter</p>

@code {
  [Parameter]
  public int TestParameter { get; set; }

}

Razor 页面:

@page "/test"
@model BlazorTest.testModel
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>test</title>
</head>
<body>

  <component type="typeof(TestComponent)" render-mode="ServerPrerendered" param-TestParameter="20" />

  <script src="~/_framework/blazor.server.js"></script>
</body>
</html>

将组件更改为以下原因:

InvalidCastException: Unable to cast object of type 'System.Int32' to type 'System.String'.

<p>Test Parameter: @TestParameter</p>

@code {
  [Parameter]
  public string TestParameter { get; set; }

}

最佳答案

你应该这样做:

 <p>Test Parameter: @TestParameter</p>

@code {
    [Parameter]
    public string TestParameter { get; set; }

}

还有这个:

<app>
        @{
            var val = "Hello world";
        }
        <component type="typeof(TestComponent)" render-mode="ServerPrerendered" param-TestParameter="@(val)" />
    </app>

这只是一个有根据的猜测,您应该用 var 定义一个您想要的类型的变量,然后让它在 Razor 表达式中求值。因此,如果您的参数属性传递了一个整数,您应该像这样:

  @{
        var val = 120;
   }

关于parameters - Blazor 3.1 Component Tag Helper 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59242649/

相关文章:

joomla - 在菜单项类型中显示 joomla 组件

c# - 将附加数据传递给 Blazor 组件中的通用 RenderFragment

blazor - 悬停并更改图像

Java:处理自定义组件文本字段中的 ' - ' 字符

asp.net - 将 UserId 获取到 SQLDataSource

powershell - 如何从powershell中的配置文件中获取变量

templates - Grails:如何将参数从自定义标记库传递到模板?

events - Angular 5 ngSubmit @Output 触发两次

javascript - Webassembly 最终会在浏览器中呈现为 HTML 吗?

mysql - nodejs 表达 mysql 查询 'SET @' XXX''