如何解决在blazor页面上设置参数时,IIS和独立应用程序崩溃
我在asp.net core 3.1上一个全新的blazor服务器应用程序中以.razor文件的形式创建了以下组件:
如果您通过IIS Express或.exe独立应用程序访问页面/P
,则由于访问冲突而崩溃:
iisexpress.exe”错误代码-1073741819(0xc0000005)'访问 侵犯”。
在调试过程中,在子组件上设置EventCallBack
后看起来好像崩溃了。
parent.razor:
@page "/P"
<h3>Parent</h3>
Parent: @Name
<Child @bind-Name="Name" />
@code {
public string Name { get; set; } = "Bla";
}
Child.razor
<h3>Child</h3>
Value: @Name
@code {
private string _Name;
[Parameter]
public string Name
{
get => Name; set
{
if (value != _Name)
{
_Name = value;
//NameChanged.InvokeAsync(_Name).Wait();
}
}
}
[Parameter]
public EventCallback<string> NameChanged { get; set; }
}
编辑:在下一步中,我想更改子组件中的Name
字段,并使用回调函数将更改发送给父组件。
有人有解决方案或想法来获取更多信息吗?
解决方法
我建议您采取一系列措施,以使您前进;
在子组件上,将EventCallback
定义为参数。添加一些机制来更改Name
,然后调用EventCallback
。在此示例中,我使用了一个文本框(通过两种方式绑定来使Name
属性保持最新状态)和一个用于调用回调的按钮。
<h3>Child</h3>
<input @bind-Value="Name" />
<button @onclick="OnButtonClicked" >Click me</button>
@code {
[Parameter]
public string Name {get; set;}
[Parameter]
public EventCallback<string> NameChanged {get; set;}
public async Task OnButtonClicked(){
await NameChanged.InvokeAsync(Name);
}
}
在父页面上,在页面初始化中设置默认字符串,然后将此字符串绑定到子组件。还为从子组件冒泡的名称更改定义事件处理程序。
@page "/mypage"
<h3>Parent</h3>
Parent: @Name
<Child Name="@Name" NameChanged="HandleNameChanged" }
@code {
public string Name { get; set; }
public override void OnInitialized(){
Name = "bla";
}
public void HandleNameChanged(string changedName){
Name = changedName;
}
}
,
我找到了答案……在喊话器上的getter上有一个错字<script src="https://unpkg.com/vue@2.6.12/dist/vue.min.js"></script>
<script src="https://unpkg.com/bootstrap-vue@2.17.3/dist/bootstrap-vue.js"></script>
<link href="https://unpkg.com/bootstrap@4.5.3/dist/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://unpkg.com/bootstrap-vue@2.17.3/dist/bootstrap-vue.css" rel="stylesheet" />
<div id="app">
<b-dropdown text="Dropdown">
<component
:is="`b-dropdown-${option.element}`"
v-for="(option,index) in options"
:key="index"
>
{{ option.value }}
</component>
</b-dropdown>
</div>
,可以访问后备字段。
所以它进入了无限循环,这将导致崩溃...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。