ala*_*ned 4 parameters components blazor
我尝试使用 3.1 中的新标签助手将参数传递到 razor 页面上的 Blazor 组件,它适用于整数类型,但如果我更改为字符串,则会引发错误。我缺少什么?
成分:
<p>Test Parameter: @TestParameter</p>
@code {
[Parameter]
public int TestParameter { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
剃刀页面:
@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>
Run Code Online (Sandbox Code Playgroud)
将组件更改为以下原因:
InvalidCastException:无法将类型“System.Int32”的对象转换为类型“System.String”。
<p>Test Parameter: @TestParameter</p>
@code {
[Parameter]
public string TestParameter { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
你应该做这个:
<p>Test Parameter: @TestParameter</p>
@code {
[Parameter]
public string TestParameter { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和这个:
<app>
@{
var val = "Hello world";
}
<component type="typeof(TestComponent)" render-mode="ServerPrerendered" param-TestParameter="@(val)" />
</app>
Run Code Online (Sandbox Code Playgroud)
这只是一个有根据的猜测,您应该使用 var 定义所需类型的变量,然后让它在 Razor 表达式中进行计算。因此,如果你的参数属性传递了一个整数,你应该像这样:
@{
var val = 120;
}
Run Code Online (Sandbox Code Playgroud)