Jquery 如何从C#try catch块触发Boostrap警报
我在AspNet Core 3.1中有一个Razor页面,我可以单击该页面上的一个按钮,然后会出现一个引导警报。以下是jquery—它可以正常工作:Jquery 如何从C#try catch块触发Boostrap警报,jquery,asp.net-core,bootstrap-4,Jquery,Asp.net Core,Bootstrap 4,我在AspNet Core 3.1中有一个Razor页面,我可以单击该页面上的一个按钮,然后会出现一个引导警报。以下是jquery—它可以正常工作: <script> $(document).ready(function () { $('#btnSubmit').click(showError); $('#linkClose').click(function () { $('#errorAlert').hide('f
<script>
$(document).ready(function () {
$('#btnSubmit').click(showError);
$('#linkClose').click(function () {
$('#errorAlert').hide('fade');
});
});
function showError() {
$('#errorAlert').show('fade');
setTimeout(function () {
$('#errorAlert').hide('fade');
}, 5000);
}
if (@Model.ShowError) {
showError();
}
</script>
公共异步任务OnGetAsync(bool id)
{
ROR=id
try
{
var ret = ManipulateMyFile(file)
}
catch (Exception ex)
{
Log.Error("File being used - {ex}", ex);
ErrorMessage= "File being used";
return Redirect("/Admin/LearningTasks/Index/true");
}
return Redirect("/Admin/LearningTasks/Index/false");
}
您可以在ViewBag中设置一个变量,然后在视图中检查它以触发javascript函数。如果您这样做,请确保将其设置为默认值
false
,否则可能导致视图中出现错误
在控制器中
ViewBag.ShowError = false;
try
{
var ret = ManipulateMyFile(file)
}
catch (IOException ex)
{
Log.Error("File being used - {ex}", ex);
ViewBag.ShowError = true;
}
然后在剃刀的视野里
<script>
var doShowError = @ViewBag.ShowError.ToString().ToLower();
$(document).ready(function () {
$('#btnSubmit').click(showError);
$('#linkClose').click(function () {
$('#errorAlert').hide('fade');
});
// show the error
if (doShowError) {
showError();
}
});
</script>
var doShowError=@ViewBag.batherRor.ToString().ToLower();
$(文档).ready(函数(){
$('btnsupmit')。单击(淋浴ROR);
$('#linkClose')。单击(函数(){
$('#errorAlert')。隐藏('fade');
});
//显示错误
如果(doShowError){
淋浴器();
}
});
为什么要从c#代码返回脚本标记?您试图解决的用例是什么?您是通过post还是ajax调用服务器端的?我想从c#代码返回脚本标记,因为我正在记录的错误信息是在服务器端生成的。我想以弹出窗口的形式在客户端显示信息。我正在使用g带有.Net Core 3.1的Razor页面(Razor页面,而不是mvc)。对服务器的调用是通过post进行的,可以在OnPostAsync()下的cshtml.cs页面中找到。我采纳了@chrisbyte的建议,并在原始帖子中编辑了代码片段,以反映我不是在使用mvc模型,而是在使用纯剃须刀页面,但仍然存在问题。此外,我希望摆脱我的方法导致的完整页面刷新。
<script>
var doShowError = @ViewBag.ShowError.ToString().ToLower();
$(document).ready(function () {
$('#btnSubmit').click(showError);
$('#linkClose').click(function () {
$('#errorAlert').hide('fade');
});
// show the error
if (doShowError) {
showError();
}
});
</script>