gpt4 book ai didi

javascript - 从 MVC4 中的 Controller 在我的 Razor 页面中调用 Javascript

转载 作者:行者123 更新时间:2023-11-30 14:09:42 24 4
gpt4 key购买 nike

在我的 Controller 中我有这个功能:

Function AppError() As ActionResult
Dim myScript As Object = "popup(" + Properties.postError + ")"
Return RedirectToAction("main", myScript)
End Function

有了这个函数,我想调用我的 razor 页面,其中我有一个名为 popup 的 Javascript 和一个参数 Properties.postError
我的脚本是:

<script type="text/javascript">
var errMsg;
function popup(msg) {
errMsg = msg;
window.alert(errMsg);
window.window.focus();
if (window.confirm)
errmsg = '';
msg = '';
}
</script>

我需要的是弹出错误信息。
我通过我的调试器跟踪程序,我看到它进入了我的页面。
但是没有错误消息窗口出现。
我已经在网上搜索此选项但没有成功。
有人可以帮助我解决这个问题吗?

添加 - 16/2/19 12:50
到目前为止我所做的如下:

Function CBError() As ActionResult
Dim myScript As Object = "popup(" + Properties.postError + ")"
ViewData.Add(New KeyValuePair(Of String, Object)("ScriptName", myScript))
Return View("main", myScript)
End Function

正如我们所见,我通过添加 ViewData
更改了函数我添加一个值对参数 1) 名称 2) 值
加法运算效果很好,字典也能接收到它。
我的脚本(在我的 reazor 页面中)我放置了以下内容:

<script type="text/javascript">
var vd = @ViewData.Item(0);
function popup(msg) {
var errMsg;
errMsg = msg;
window.alert(errMsg);
window.window.focus();
if (window.confirm)
errmsg = '';
msg = '';
//{ window.location.href = "/" }
}
</script>

当我在指令 var vd = @ViewData.Item(0); 中停止(使用调试器)时,我看到 ViewData 完全是空的。没有值(value)观就什么都没有。
我还添加了这个 window.onload = @Html.Raw(ViewBag.MyScript);
在调试器中给我一个错误

"Uncaught SyntaxError: Unexpected token ;"

有没有人告诉我为什么会这样?

添加 - 16/2/19 20:00
新版本功能和脚本

Function CBError() As ActionResult
Dim myScript As Object = Properties.postError
ViewData.Add(New KeyValuePair(Of String, Object)("Message", myScript))
Return View("main")
End Function<br/>

<script type="text/javascript">
$(document).ready(function (){
alert("@ViewData.Values(0)");
});
</script>

在这个版本中,我将 message 值放入 ViewData
但是当程序到达 script 点时,所有 ViwData 都是空的。
没有值没有键什么都没有。
似乎在中间某处丢失了所有数据

最终更新 17/2/19 11:13
问题已经解决了......但不是我们穿着的方式。
它以极其简单的方式解决了。
我们要求的是在我们所在的页面上获取错误消息。从代码的任何位置。
因此,我按照将消息呈现给属性的方法进行操作,并使用以下 Javascript 从页面中读取此消息。
函数是:

Function CodePage_Error() As ActionResult
Return View("main")
End Function

结束Javascript是:

<script type="text/javascript">
$(document).ready(function () {
if ("@Properties.InnerError" !== "") {
var msg = "@Properties.InnerError";
window.alert(msg);
} else {
return false;
}

}); Javascript 放在 mainLayout.vbhtml 文件

一般来说,原来controller到page的transfer方法在MVC4环境下是不行的

最佳答案

您可以通过 Viewbag 将错误消息传递给页面,然后将弹出脚本放入文档就绪的 javascript 函数中以检查消息并在需要时显示错误。

Controller :

public IActionResult Index()
{
ViewBag.Message = "this is your message";
return View();
}

查看:

<script type="text/javascript">
$(document).ready(function (){
alert("@ViewBag.Message");
});

关于javascript - 从 MVC4 中的 Controller 在我的 Razor 页面中调用 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54708972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com