javascript - 单击按钮后更改 bool 值的状态

标签 javascript c# jquery asp.net

为约会开发 C# 应用程序。我希望管理员能够进入详细信息页面并单击一个按钮以确认约会,这是一个设置为 false 的 bool 值以开始。单击后,我将重新加载页面并确认约会。

我无法理解如何实现这一目标。

这是我的 Controller :

    [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Details([Bind(Include = "AppointmentId,Confirmed")] Appointments appointments)
        {
            if (ModelState.IsValid)
            {
                db.Entry(appointments).State = EntityState.Modified;
                db.SaveChanges();
return RedirectToAction("Details", new { id = appointments.AppointmentId });
            }

            return View(appointments);
        }

以及我想要执行此部分的详细信息页面:
<th>
        @Html.DisplayName("Appointment Status")
        </th>
        @if (Model.Confirmed == false)
        { 
        <td>
            <div class="form-group">
                <div class="col-md-offset-2 col-md-10">
                    <input type="submit" value="Confirm Appointment" class="btn btn-default" />
                </div>

            </div>
        </td>
        }
        else if (Model.Confirmed == true)
        {
            <td>
                @Html.DisplayName("Appointment Confirmed")
            </td>
        }
    </tr>

我整天都在做这个项目,所以也许疲惫的眼睛在玩我

最佳答案

看起来你大部分都在那里。但是您的提交按钮需要在一个可以再次发回的表单中。

这是执行此操作的一种方法,它发布到服务器上的特定“ConfirmApppointment”操作方法,该操作方法将确认约会(因为这似乎是您要更新的唯一字段,所以没有真正需要发回整个约会模型)。

我认为您还需要将约会 ID 放在隐藏字段中,以便将其发布回服务器,以便知道要确认哪个约会:

详细信息 View 将如下所示:

<th>Appointment Status</th>
@if (Model.Confirmed == false)
{ 
  <td>
  @using (Html.BeginForm("ConfirmAppointment", "Appointment", FormMethod.Post))
  {
    <div class="form-group">
      <div class="col-md-offset-2 col-md-10">
        <input type="submit" value="Confirm Appointment" class="btn btn-default" />
        <input type="hidden" name="appointmentID" value="@Model.Id"/>
      </div>
    </div>
  }
  </td>
}
else if (Model.Confirmed == true)
{
  <td>Appointment Confirmed</td>
}

在你的 Controller 中(我假设你的 Controller 被称为“约会”,但如果不是,请在 Html.BeginForm 中修改它):
//this method is just for displaying your Details view. I'm not sure how exactly your code gets to here, since you didn't specify much (apart from a button gets clicked), so if the method signature is wrong, that'll be something for you to fix yourself, or ask another question about
public ActionResult Details(Appointments appointment)
{
    return View(appointment);
}

//this method receives the postback when the "Confirm Appointment" button is pressed, and updated the appointment details. Then it returns to the user to the same screen, where this time they should see the "Appointment Confirmed" message instead of the button
[HttpPost]
public ActionResult ConfirmAppointment(int appointmentID)
{
  var appt = db.Appointments.Find(appointmentID);
  appt.Confirmed = true;
  db.SaveChanges();
  return View(appt);
}

关于javascript - 单击按钮后更改 bool 值的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48453199/

相关文章:

javascript - 如何将此字符串数组转换为数组对象

javascript - 根据键过滤对象数组的子集

c# - C#中委托(delegate)()方法的确切含义是什么?

C#:将一个枚举包装在另一个枚举中(即镜像另一个枚举/复制它......)

php - 如何在不重新加载页面的情况下更改 php 包含?

c# - 如何在Javascript中使用模型?

javascript - Twilio客户端聊天-发送媒体消息

c# - 将字符串拆分为无分隔符的数组

javascript - for循环中的ajax函数即使使用setTimeout也不会更新DOM

php - WooCommerce ajax 更新搞乱了值