我想知道是否可以更新使用C#中的值BlazorJavascript
例如
<input type="text" @bind="TestValue" >
<input type="button" value="Change value" onclick="ChangeValueFromJs()" >
@code
{
public string TestValue {get;set;} = "init value";
}
Run Code Online (Sandbox Code Playgroud)
js
function ChangeValueFromJs()
{
}
Run Code Online (Sandbox Code Playgroud)
有没有办法使用 js 更新TestValue并成功将其绑定到文本输入ChangeValueFromJs?
我尝试这样做,但似乎不起作用
function ChangeValueFromJs()
{
DotNet.invokeMethodAsync("BlazorApp", "invokeFromJS", "ChangeValue");
}
@code
{
[JSInvokable("invokeFromJS")]
public static Task ChangeValue()
{
TestValue = "New value";
return null;
}
}
Run Code Online (Sandbox Code Playgroud) 我开始使用Blazor服务器端,但我没有正确路由。我不明白的,需要base在标签_host.cshtml。如果我仍然必须base在每个 Blazor 组件中添加url,例如:我想要一个基地址,/app/并且@page示例的指令Counter值为 ,"/counter"不会“编译”到"/app/counter". 我必须设置@page到"/app/counter"这是有道理的,但是这意味着,base在标签_host.cshtml是没有用的......
我在这里出了什么问题?
我正在开发 Blazor 应用程序。我有一个 API 方法,它返回一个List<Tuple<string,int>>.
Postman 中的 API 响应:
[
{
"Item1": "1",
"Item2": 1
},
{
"Item1": "24",
"Item2": 2
}
]
Run Code Online (Sandbox Code Playgroud)
剃刀页面中的 API 调用:
private object dataSource;
protected override async Task OnInitializedAsync() {
dataSource = await Http.GetJsonAsync<List<Tuple<string,int>>>("/Api/Default/GetProjectsList");
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
Deserialization of reference types without parameterless constructor is not supported.
Run Code Online (Sandbox Code Playgroud)
我理解错误。
是否有可以解析的泛型类型GetJsonAsync也可以从 API 方法返回?
或者有没有办法解析这个元组?请帮我。
我们可以在 C# 中为 enum 指定一个底层类型,如下所示:
[Flags]
public enum MyKinds : ushort
{
None = 0,
Flag1 = 1 << 0,
Flag2 = 1 << 1,
// ...
}
Run Code Online (Sandbox Code Playgroud)
type MyKinds =
| None = 0
| Flag1 = 1
| Flag2 = 2
// inherit ushort // error FS0912
Run Code Online (Sandbox Code Playgroud)
1 << 0F# 中那样使用按位运算符定义枚举值?type MyKinds =
| None = 0
| Flag1 = 1 << 0 // error FS0010
| Flag2 = 1 << 1 …Run Code Online (Sandbox Code Playgroud)