【发布时间】:2020-03-04 02:07:39
【问题描述】:
我正在尝试进行预订功能,其中有一组按钮可供单击,具体取决于您要预订房间多长时间; 15 分钟、30 分钟、60 分钟。
我需要通过单击按钮将一组数据项(如AppointmentStart、AppointmentEnd、RoomId 等)发送到数据表的功能。我试图找出隐藏的字段,但一无所获。
其中一个按钮的代码(它不起作用,因为我无法选择填充字段的内容,因为我不能同时拥有@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=@( () => 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