Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Blazor导航到重新加载同一页面_C#_Asp.net_Blazor - Fatal编程技术网

C# Blazor导航到重新加载同一页面

C# Blazor导航到重新加载同一页面,c#,asp.net,blazor,C#,Asp.net,Blazor,我有一个维护任务网站,列出了机器的任务。机器详细信息页面: @page "/MachineDetails/{MachineName}" @inherits MachineDetailsBase <h3>Machine Details for @Machine.MachineName</h3> <table class="table table-bordered table-striped table-hover"> <thead>

我有一个维护任务网站,列出了机器的任务。机器详细信息页面:

 @page "/MachineDetails/{MachineName}"
 @inherits MachineDetailsBase

 <h3>Machine Details for @Machine.MachineName</h3>
 <table class="table table-bordered table-striped table-hover">
    <thead>
        <tr>
            <th scope="col">Description</th>
            <th scope="col">Repeat<br />(Days)</th>
            <th scope="col">Exp Dur<br /> (Min)</th>
            <th scope="col">Next Due</th>
            <th scope="col">Owner</th>
            <th scope="col">Perform<br />Task</th>
        </tr>
    </thead>
    @foreach (var t in Machine.TasksForMachine)
    {
        <tr scope="row">
            <td>@t.TaskDescription</td>
            <td>@t.TaskRepeatDays</td>
            <td>@t.TaskMinutes</td>
            <td>@t.NextDue.Value.ToShortDateString()</td>
            <td>@t.TaskOwnerType</td>               
            <td style="text-align:center"><button class="btn btn-primary" @onclick="(() => ShowPerformTask(t.TaskId))"> <img src="/css/open-iconic/svg/check.svg" height="12" /></button></td>                
        </tr>
    }
</table>
在任务页面上,我执行必要的工作,然后再次尝试调用NavigationManager返回原始页面

PerformTaskBase上的相关代码执行相同的基本操作代码返回:

页面代码:

        <div class="row">
            <div class="col-sm-4 ">
                <button class="btn btn-primary" @onclick="(() => ClosePerformTask(true))"> Save </button>
            </div>
            <div class="col-sm-4 ">
                <button class="btn btn-secondary" @onclick="(() => ClosePerformTask())"> Don't Save</button>
            </div>
        </div>
MachineDetails页面加载一秒钟,然后PerformTask页面重新打开


在MachineDetails页面的代码隐藏中放置断点,除了OnInitializedAsync()激发之外,我看不到任何东西。如何让MachinedDetails页面加载而不返回到PerformTask?

我的答案基于这样一个假设,即此代码驻留在表单元素中

div class="row">
        <div class="col-sm-4 ">
            <button class="btn btn-primary" @onclick="(() => 
           ClosePerformTask(true))"> Save </button>
        </div>
        <div class="col-sm-4 ">
            <button class="btn btn-secondary" @onclick="(() => 
                        ClosePerformTask())"> Don't Save</button>
        </div>
    </div>
div class=“行”>
拯救
不要存钱
我说得对吗

如果是,对该行为的解释非常简单:在不设置type属性的情况下使用input按钮相当于设置要提交的type属性。当您单击其中一个按钮时,除了NavigationManager的导航之外,还会发生传统的回发到服务器的操作。但你不会在SPA应用程序中发回帖子。这意味着离开应用程序的导航空间。。。要解决此问题,请将type属性添加到按钮值为的两个按钮:
这将不允许回发,导航将按预期进行


希望这能有所帮助……

我的答案基于这样一个假设,即此代码驻留在表单元素中

div class="row">
        <div class="col-sm-4 ">
            <button class="btn btn-primary" @onclick="(() => 
           ClosePerformTask(true))"> Save </button>
        </div>
        <div class="col-sm-4 ">
            <button class="btn btn-secondary" @onclick="(() => 
                        ClosePerformTask())"> Don't Save</button>
        </div>
    </div>
div class=“行”>
拯救
不要存钱
我说得对吗

如果是,对该行为的解释非常简单:在不设置type属性的情况下使用input按钮相当于设置要提交的type属性。当您单击其中一个按钮时,除了NavigationManager的导航之外,还会发生传统的回发到服务器的操作。但你不会在SPA应用程序中发回帖子。这意味着离开应用程序的导航空间。。。要解决此问题,请将type属性添加到按钮值为的两个按钮:
这将不允许回发,导航将按预期进行


希望这有帮助……

请出示您的代码……哪些代码是相关的?除了NavigationManager之外,几乎所有的东西都只是对回购协议的调用。例如,MachineDetails的OnInitializedAsync()已获取SelectedMachine(),您的代码很好。它应该会起作用。但事实并非如此,它的典型行为是NavigationManager.NavigateTo。如果看不到上下文,则无法进一步说明。将编辑原始问题以尝试显示更多上下文。请显示您的代码…哪些代码相关?除了NavigationManager之外,几乎所有的东西都只是对回购协议的调用。例如,MachineDetails的OnInitializedAsync()已获取SelectedMachine(),您的代码很好。它应该会起作用。但事实并非如此,它的典型行为是NavigationManager.NavigateTo。如果看不到上下文,就没什么可说的了。我将编辑原始问题以显示更多上下文。是的,这是一种形式——我明天回去工作时会做第一件事。我想你已经明白了:)。谢谢你的帮助,真管用,谢谢。我是网络编程新手,我认为表单标签本质上只是相关控件的逻辑分组。是的,它是在表单中的——我明天回去工作时会做第一件事。我想你已经明白了:)。谢谢你的帮助,真管用,谢谢。我不熟悉web编程,认为表单标记本质上只是相关控件的逻辑分组。
div class="row">
        <div class="col-sm-4 ">
            <button class="btn btn-primary" @onclick="(() => 
           ClosePerformTask(true))"> Save </button>
        </div>
        <div class="col-sm-4 ">
            <button class="btn btn-secondary" @onclick="(() => 
                        ClosePerformTask())"> Don't Save</button>
        </div>
    </div>