gpt4 book ai didi

javascript - 在 ASP.NET MVC 的 javascript 函数中设置字符串给出 NullReferenceException

转载 作者:行者123 更新时间:2023-11-29 22:14:03 24 4
gpt4 key购买 nike

在我的 MVC View 中,我有通过单击按钮执行的 javascript。我正在尝试将一个字符串设置为一组随机字符,这样我可以正常工作,但是当我尝试将该字符串设置为 javascript 中的“randomchars”字符串时,我在尝试运行 View 时收到 NullReferenceException。

下面是代码片段,CreateRString是模型参数(RString)设置为随机字符串的地方。

<script type="text/javascript">
function showAndroidToast(toast) {

var url = '@Url.Action("CreateRString", "Functions")';
$.ajax({ url: url, success: function (response) { window.location.href = response.Url; }, type: 'POST', dataType: 'json' });

var randomchars = '@(Model.RString)';
}
</script>

语法是否正确?我不太清楚为什么它会得到 NULL。

最佳答案

javascript 在页面传送到客户端(即网络浏览器)后执行。此处的 Razor 代码在页面发送到客户端之前在服务器上执行。因此,ajax 方法将在您尝试访问 Model.RString

后执行

要解决此问题,您可以在服务器上调用 CreateRString,也可以使用成功回调中的响应设置 randomchars

进一步解释选项 2。你可以这样做:

//Action Method that returns data which includes your random chars
public JsonResult CreateRString()
{
var myRandomChars = "ABCDEF";
return new JsonResult() { Data = new { RandomChars = myRandomChars } };
}

//The ajax request will receive json created in the CreateRString method which
//contains the RandomChars
$.ajax({ url: url, success: function (response) {
var randomchars = response.Data.RandomChars;
window.location.href = response.Url;
}, type: 'POST', dataType: 'json' });

更具体地说, Razor 调用 @Url.Action("CreateRString", "Functions")@(Model.RString) 首先在服务器上执行。

然后 showAndroidToast 在您调用它时在客户端的浏览器中执行。

关于javascript - 在 ASP.NET MVC 的 javascript 函数中设置字符串给出 NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16289910/

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