在我的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