在我的MVC视图内我有一个按钮单击执行的JavaScript。我试图设置一个字符串到随机设置的字符,我可以很好地工作,但是当我尝试将该字符串设置为JavaScript中的'randomchars'字符串时,我尝试运行视图时遇到NullReferenceException。在ASP.NET MVC的JavaScript函数中设置字符串给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。
感谢您的回复,很遗憾,我无法在服务器上创建随机字符串,因为它需要是客户端特定的。当你说我可以在成功回调中设置“randomchars”时 - 我该如何去做这件事?我所知的将'randomchars'设置为'Model.RString'的唯一方法是使用'@(Model.RString)'的razor方法,该方法将尽早执行。 – benallansmith 2013-04-29 23:45:47
如果需要特定于客户端,则可以在服务器端使用C#GUID。如果您需要只能在浏览器中获得的信息,那么您需要使用javascript创建您的随机数或通过发送一个将信息传递给控制器的ajax请求。但我想我可能不会理解你说的一切。 – 2013-04-29 23:57:39
是的,这就是我所说的。由于您的洞察力,我现在可以开展工作。我用javascript创建了randomchars,见[这个问题](http://stackoverflow.com/questions/1349404/generate-a-string-of-5-random-characters-in-javascript)。然后我使用ajax'data:{'RString':RString}将控制器传递给控制器,允许我的控制器使用该字符串。 – benallansmith 2013-04-30 00:37:36