在 WinForms 中,我可以这样做:
var msg = MessageBox.Show("Are you sure?", "WARNING!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
if (msg == DialogResult.Yes)
{
//do something
}
如何在 ASP .NET/C# 中模仿上述内容?
简短的回答是你不能。原因是你在服务器上执行的代码并没有直接映射到客户端。因此,您无法创建可在服务器上使用的交互式消息框来获取用户的响应。
您可以做的是使用客户端 jquery,然后根据他们的响应发出新请求。但是,这与在 WindowsForms 中使用 MessageBox 不同,因为它要求您让方法完全完成,然后根据全新的请求采取行动。
您始终可以使用JQuery 模态对话框:
对话框定义:
<div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-draggable ui-resizable">
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">
<span id="ui-dialog-title-dialog" class="ui-dialog-title">Dialog title</span>
<a class="ui-dialog-titlebar-close ui-corner-all" href="#"><span class="ui-icon ui-icon-closethick">close</span></a>
</div>
<div style="height: 200px; min-height: 109px; width: auto;" class="ui-dialog-content ui-widget-content" id="dialog">
<p>Dialog content goes here.</p>
</div>
</div>
对话框打开(只是一个例子):
$(foo).dialog({ autoOpen: false })
您无法从服务器端显示对话框。您可以使用 JavaScript 执行此操作。如果你想要它的样式,我推荐使用jQuery 的对话框
如果您使用的是 asp:LinkButton
<asp:LinkButton id="btnSubmit" runat="server" OnClick="btnSubmit_Click" />
在后面的代码中:
public void Page_Load(object sender, EventArgs e)
{
this.btnSubmit.Attributes.Add("onclick", "javascript: return confirm('Are you sure?');");
}
public void btnSubmit_Click(object sender, EventArgs e)
{
//Run code. User already confirmed to get here.
}
你可以使用这个jquery插件
您可以使用 ASP.NET AJAX 来实现它
另一个解决方案是使用 Bootstraps 版本...我发现它很容易实现并且喜欢添加的效果。
我有一个链接按钮
<asp:LinkButton ID="btnDelete"
runat="server"
CssClass="btn btn-lg btn-primary"
Visible="true"
ToolTip="Delete Task"
data-toggle="modal"
data-target="#DeleteModal">
<span class="glyphicon glyphicon-trash"></span>
</asp:LinkButton>
和删除模态 div
<!-- Delete Modal Begin-->
<div class="modal fade" id="DeleteModal" role="dialog">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Delete Task</h4>
</div>
<div class="modal-body">
<p>Are you sure you want to delete task?</p>
</div>
<div class="modal-footer">
<asp:Button ID="Button1" runat="server"
OnClick="btnDelete_Click"
CssClass="btn btn-primary"
Text="Delete" />
<button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- Delete Modal End -->
这是如何显示对话消息的基本示例:
Page.RegisterStartupScript("UserMsg", "<script>alert('this is my message :) !');</script>");