【问题标题】:Pass pre populated values to SQL Server database table (using Blazor)将预先填充的值传递给 SQL Server 数据库表(使用 Blazor)
【发布时间】:2020-03-04 02:07:39
【问题描述】:

我正在尝试进行预订功能,其中有一组按钮可供单击,具体取决于您要预订房间多长时间; 15 分钟、30 分钟、60 分钟。

我需要通过单击按钮将一组数据项(如AppointmentStartAppointmentEndRoomId 等)发送到数据表的功能。我试图找出隐藏的字段,但一无所获。

其中一个按钮的代码(它不起作用,因为我无法选择填充字段的内容,因为我不能同时拥有@bind 和 value="x"):

@if (@schedule.AppointmentDateStart >= ChooseTimeSlot.AddMinutes(15))
{
    <div class="col">
        <EditForm class="" Model="@schedule" OnValidSubmit="@ValidSubmit">
            <button class="btn btn-primary form-control">15 min</button>
            <input type="hidden" @bind="@schedule.Room.Id" class="form-control" />
            <input type="hidden" @bind="@schedule.AppointmentHeading" class="form-control" />
            <input type="hidden" @bind="@schedule.AppointmentDateStart" class="form-control" />
            <input type="hidden" @bind="@schedule.AppointmentDateEnd" class="form-control" />
            <input type="hidden" @bind="@schedule.BookerId" class="form-control" />
        </EditForm>
    </div>
}        

【问题讨论】:

  • 您在测试代码时是否收到错误消息?如果是这样,请您发布错误消息吗?
  • Blazor 是 C# 代码 - 您似乎已经拥有 schedule 对象,因此您不需要所有这些隐藏输入 - 所做的只是向页面添加隐藏数据。您似乎不需要 EditForm,因为您没有验证任何内容或要求他们“编辑”任何内容。你可以有一个按钮,它有一个 @onclick 处理程序,类似于 @onclick=@( () =&gt; AppointmentChosen(15) ),所有其余数据已经在 schedule
  • 对不起,我想我写这个累了。是的,数据库中已经为这个 UI 场景设置了一些东西(会议室外的 ipad); Room.Id(预先选择的房间),BookerID(由于快速预订而匿名)。所以我需要填充的项目是AppointmentDateStart = DateTime.Now()AppointmentDateEnd = DateTime.Now.AddMinutes(15/30/60 等,取决于按下的按钮)。还有另一个 UI,您作为用户(或管理员)可以通过登录预订房间 - 用户可以在其中添加 AppointmentHeading、选择不同的日期等。管理员可以编辑约会和用户等。跨度>
  • 谢谢@MisterMagoo。我会尝试更改!

标签: forms asp.net-core blazor


【解决方案1】:
@onclick=@( () => AppointmentChosen(15) )

来自@MistMagoo 让我重回正轨,所以这是解决方案:

<div class="col"><button class="btn btn-primary form-control" @onclick=@(() => TimeSlot(15, TRoomId))>15 min</button></div>

@code{
[Parameter] public int TRoomId { get; set; }

newSchedule = new Schedule();
        {
        var SlotAdd = RoundUp(DateTime.Now, TimeSpan.FromMinutes(NextTimeSlot));

        newSchedule.RoomId = roomId;
        newSchedule.AppointmentHeading = "Snabb";
        newSchedule.AppointmentDateStart = DateTime.Now;
        newSchedule.AppointmentDateEnd = SlotAdd;
        newSchedule.BookerId = 1007;
        newSchedule.IsConfirmed = true;

    }

}

【讨论】:

    猜你喜欢
    • 2021-06-30
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多