如何解决如何在 Razor Pages 中向用户打印消息
我正在使用 Razor Pages 创建一个网络应用程序,但遇到了一个问题。我试图在抛出异常时向用户发送消息。我正在想象类似于 System.Windows.Forms 中的 MessageBox 类的东西。关于这是否可能或如何做到的任何想法?任何帮助表示赞赏。
try
{
double oneone = Convert.Todouble(Project.projectServicesCost);
}
catch (Exception e)
{
//Throw message to user saying projectServicesCost is not in the correct
//format and therefore Couldn't convert to double
}
解决方法
您可以使用 Bootstrap 中的模态并在 ViewBag 上返回异常并检查何时不为空并显示模态
[HttpPost]
public ActionResult Save(int? id){
UserViewModel model = new UserViewModel();
if(id == null){
ViewBag.Exception = "Please select an ID";
return View();
}
model.User = context.Users.FisrtOrDefault(a => a.id == id);
return View(model);
}
<script>
$(document).ready(function(){
var exception = @String.IsNullOrEmpty(ViewBag.Exception).ToString().ToLower();
if(!exception){
$("#modal-body").text("@ViewBag.Exception");
$("#modal").modal("show");
}
});
</script>
或者使用来自 js 的警报
<script>
$(document).ready(function(){
var exception = @String.IsNullOrEmpty(ViewBag.Exception).ToString().ToLower();
if(!exception){
alert("@ViewBag.Exception");
}
});
</script>
您可以使用诸如 NToastNotify
之类的库。
您可以按照以下步骤来实现:
1.使用包控制台管理器安装 NToastNotify 包:
Install-Package NToastNotify
2.配置 NToastNotify 服务和
services.AddRazorPages().AddNToastNotifyNoty();
3.添加中间件:
app.UseNToastNotify();
4.在_Layout页面添加视图:
@await Component.InvokeAsync("NToastNotify")
5.依赖注入IToastNotification就可以使用了
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
private readonly IToastNotification _toastNotification;
public IndexModel(ILogger<IndexModel> logger,IToastNotification toastNotification)
{
_logger = logger;
_toastNotification = toastNotification;
}
public void OnGet()
{
try
{
throw new NullReferenceException();
}
catch
{
_toastNotification.AddErrorToastMessage("Some Error Message");
}
}
}
结果:
更多详情,请参考: https://github.com/nabinked/NToastNotify
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。