julazor如何访问重复的页面参数?

发布于 2025-02-05 11:54:06 字数 2566 浏览 2 评论 0 原文

我有一个关于复制剃须刀页面的疑问。

我在YouTube上找到了此代码,并尝试了自己。 并很难建立一种访问参数(任务清单)的方法。

todos(测试页)

@page "/Todo"

<div class="row">
    <div class="col-6">
        <Todo Headername="Daily Task"></Todo>
    </div>
    <div class="col-6">
        <Todo Headername="Monthly Task"></Todo>

    </div>
</div>
<div>
    <!-- I want to print out both List parameter value on the page!! -->
</div>


@code {
 
}

todo(组件)

@page "/Tests"


<h3>@Headername</h3>

<!-- Edit form-->
<EditForm Model="task" class="form-inline"  OnValidSubmit="AddTask">
    <input type="text" class="form-control mx-2" @bind-value="task.TaskName" />
    <button class="btn btn-outline-primary mx-2">Add Task</button>
</EditForm>

<div class="progress-bar my-2" role="progressbar" style="width:@(PercentageCompleted)%" aria-valuemax="100" aria-valuemin="0">
    @(PercentageCompleted)%
</div>

<ul class="list-group" my-2>
    @foreach (var taskitem in taskList)
    {
        if (taskitem.IsComplete)
        {
            <!--Task Completed-->
            <li class="list-group-item list-group-item-success mx-1" @onclick="(()=>taskitem.IsComplete = task.IsComplete)"> <del>@taskitem.TaskName</del></li>
        }
        else
        {
            <!--Task Not Completed-->
            <li class="list-group-item list-group-item-secondary mx-1" @onclick="(()=>taskitem.IsComplete = !task.IsComplete)">@taskitem.TaskName</li>
        }
    }

</ul>


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

    protected List<TaskModel> taskList = new List<TaskModel>();

    protected TaskModel task = new TaskModel();

    protected override void OnInitialized()
    {
        if (Headername == "")
        {
            Headername = "Todo";
        }
    }

    public int PercentageCompleted {
        get {
            return taskList.Count > 0 ? (taskList.Count(x => x.IsComplete) * 100 / taskList.Count) : 0;
        }
    }

    private void AddTask()
    {
        taskList.Add(task);
        task = new TaskModel();
    }
}

以下是Todos页面参考的一个示例

I have a question about duplicating Razor pages.

I found this code on Youtube and tried myself.
And having a hard time founding a way to access a parameter (taskList).

ToDos (Test pages)

@page "/Todo"

<div class="row">
    <div class="col-6">
        <Todo Headername="Daily Task"></Todo>
    </div>
    <div class="col-6">
        <Todo Headername="Monthly Task"></Todo>

    </div>
</div>
<div>
    <!-- I want to print out both List parameter value on the page!! -->
</div>


@code {
 
}

Todo(Components)

@page "/Tests"


<h3>@Headername</h3>

<!-- Edit form-->
<EditForm Model="task" class="form-inline"  OnValidSubmit="AddTask">
    <input type="text" class="form-control mx-2" @bind-value="task.TaskName" />
    <button class="btn btn-outline-primary mx-2">Add Task</button>
</EditForm>

<div class="progress-bar my-2" role="progressbar" style="width:@(PercentageCompleted)%" aria-valuemax="100" aria-valuemin="0">
    @(PercentageCompleted)%
</div>

<ul class="list-group" my-2>
    @foreach (var taskitem in taskList)
    {
        if (taskitem.IsComplete)
        {
            <!--Task Completed-->
            <li class="list-group-item list-group-item-success mx-1" @onclick="(()=>taskitem.IsComplete = task.IsComplete)"> <del>@taskitem.TaskName</del></li>
        }
        else
        {
            <!--Task Not Completed-->
            <li class="list-group-item list-group-item-secondary mx-1" @onclick="(()=>taskitem.IsComplete = !task.IsComplete)">@taskitem.TaskName</li>
        }
    }

</ul>


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

    protected List<TaskModel> taskList = new List<TaskModel>();

    protected TaskModel task = new TaskModel();

    protected override void OnInitialized()
    {
        if (Headername == "")
        {
            Headername = "Todo";
        }
    }

    public int PercentageCompleted {
        get {
            return taskList.Count > 0 ? (taskList.Count(x => x.IsComplete) * 100 / taskList.Count) : 0;
        }
    }

    private void AddTask()
    {
        taskList.Add(task);
        task = new TaskModel();
    }
}

Copy Razor page
below is a example of ToDos pages

reference : https://www.youtube.com/watch?v=T6lUWO-_NfM&ab_channel=CodingSimplified

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

久而酒知 2025-02-12 11:54:06

如果没有更充分了解您所做的/试图实现任务的上下文,就很难提出建议?

在“代码”中,您显示了 taskList 受保护 todo 的属性,因此组件`todos'看不到它。

如果您愿意,您可以开始双向绑定 - 这就是Magoo先生的参考文献所示。这种方法适用于简单的示例。

但是,我主张将数据从UI中获取并使用事件。我对这个问题的回答说明了如何做到这一点 -

It's difficult to make suggestions without a fuller understanding of the context of what you are doing/ trying to achieve with Tasks?

In the code you've show taskList is a protected property of ToDo, so the component `ToDos' can't see it.

You can start plumbing up two way binding if you wish - that's what Mister Magoo's reference demonstrates. This approach works for simple examples.

I however advocate getting the data out of the UI and using events. My answer to this question demonstrates how to do that - How can I trigger/refresh my main .RAZOR page from all of its sub-components within that main .RAZOR page when an API call is complete?.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文