使用 MVC 从 CodeBehind 显示确认对话框
Display Confirm Dialog from CodeBehind using MVC
我们有一个需要大量逻辑检查的大项目。例如,当他们单击此特定表单上的 "save" 时,它会发出大约 3 - 4 条不同的确认消息。这些确认对话框应该从代码后面显示。
有哪些方法可以做到这一点?
我知道我可以使用 ajax 参数来发送值,例如 param = { areYouSure: "Yes", alsoDeleteContract: "No", continueIfError: "Yes" }
有没有更高效的方法?
或者有什么方法可以直接从控制器调用代码?等待对话结果,然后继续处理结果。
我们的项目中使用了 SignalR,所以这就是我的想法:
public ActionResult controllerMethod()
{
var result = signalRHub.CallQuePopupTask(task, connectionID, CurrentUser);
if result == "yes" { ... }
else { return "don't activate" }
}
public static void CallQuePopupTask(Types.CallQuePopupTask task, string connectionID, User user)
{
var hub = GlobalHost.ConnectionManager.GetHubContext<signalRHub>();
// Will display a confirm dialog to client and wait for client to click yes or no
var dialogResult = hub.Clients.Client(connectionID).callQuePopupDialogResult();
return dialogResult;
}
如果服务器需要处理这些检查,那么只需将数据传递给它并让它做它的事情。您只需要一些简单的 AJAX 和标准的 JavaScript 确认对话框。例如,用户点击提交。您捕获表单提交事件并向处理第一次检查的操作发送 AJAX 调用。然后该操作将进行检查并 return 一个 JSON 对象,该对象包含一些布尔值或告诉您用户是否需要确认某事的信息。如果是,则显示确认对话框并等待用户的响应。冲洗并重复其他检查。如果一切正常and/or用户已经确认了一切,那么你终于让表单正常提交了。
我们有一个需要大量逻辑检查的大项目。例如,当他们单击此特定表单上的 "save" 时,它会发出大约 3 - 4 条不同的确认消息。这些确认对话框应该从代码后面显示。
有哪些方法可以做到这一点? 我知道我可以使用 ajax 参数来发送值,例如 param = { areYouSure: "Yes", alsoDeleteContract: "No", continueIfError: "Yes" }
有没有更高效的方法? 或者有什么方法可以直接从控制器调用代码?等待对话结果,然后继续处理结果。
我们的项目中使用了 SignalR,所以这就是我的想法:
public ActionResult controllerMethod()
{
var result = signalRHub.CallQuePopupTask(task, connectionID, CurrentUser);
if result == "yes" { ... }
else { return "don't activate" }
}
public static void CallQuePopupTask(Types.CallQuePopupTask task, string connectionID, User user)
{
var hub = GlobalHost.ConnectionManager.GetHubContext<signalRHub>();
// Will display a confirm dialog to client and wait for client to click yes or no
var dialogResult = hub.Clients.Client(connectionID).callQuePopupDialogResult();
return dialogResult;
}
如果服务器需要处理这些检查,那么只需将数据传递给它并让它做它的事情。您只需要一些简单的 AJAX 和标准的 JavaScript 确认对话框。例如,用户点击提交。您捕获表单提交事件并向处理第一次检查的操作发送 AJAX 调用。然后该操作将进行检查并 return 一个 JSON 对象,该对象包含一些布尔值或告诉您用户是否需要确认某事的信息。如果是,则显示确认对话框并等待用户的响应。冲洗并重复其他检查。如果一切正常and/or用户已经确认了一切,那么你终于让表单正常提交了。