【问题标题】:How to calculate a value in Blazor?如何在 Blazor 中计算值?
【发布时间】:2021-10-30 07:09:30
【问题描述】:

我正在开发 Blazor Server 应用程序,并且我有一个具有 Feedback 属性的类 (User)。单击按钮时,我想给我的模型类打分并计算反馈,但它似乎不起作用。另外,user.Feedback 的默认值为 5,因此,例如,如果我添加 4,它应该是 4.5。这就是我所做的。我做错了吗?

<form>
    <div class="row">
        <div class=" col-md-8">
            <div class="form-group">
                <label>Rate user:</label>
                <input type="number" id="rating" @bind-value="@rating" placeholder="rating">
            </div>
            <div class="row  my-3 px-3">
                <button class="btn btn-white ml-2" @onclick="@GiveFeedback">Give feedback</button>
            </div>
        </div>
    </div>
</form>

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

    User user = new User();
    public int rating { get; set; }

    protected override async Task OnInitializedAsync()
    {
        user = await Task.Run(() => userService.GetUserAsync(Convert.ToInt32(UserId)));
    }

    protected void GiveFeedback()
    {
        user.NumberOfFeedbacks++;
        user.Feedback=(user.Feedback+rating)/user.NumberOfFeedbacks;
    }

【问题讨论】:

  • doesn't seem to work - 在哪种情况下它似乎不起作用?顺便说一句,这不是您 calculate a new average 基于旧平均值和一个新数据点的方式。
  • @GSerg 反馈没有修改
  • @IoanaIgnat,他们不是对此 UI 的反馈。你期待什么?

标签: c# asp.net blazor


【解决方案1】:

我认为这不是 Blazor 特定的问题。你可能有类型问题和一些计算问题......

  1. user.Feedback 属性的类型是什么?是 int 还是 double 以存储您需要使用 doubledecimal 类型的部分(浮动)数字
  2. 平均计算似乎也是错误的,使用这一行:user.Feedback=((user.Feedback * user.NumberOfFeedbacks) + rating) / user.NumberOfFeedbacks;

【讨论】:

    猜你喜欢
    • 2022-01-02
    • 2016-08-26
    • 2019-07-17
    • 1970-01-01
    • 2013-12-18
    • 2019-03-16
    • 2018-12-26
    • 2016-05-27
    • 2021-06-13
    相关资源
    最近更新 更多