在MVC應用程序,我想在外部.js文件ViewBag,ViewData的,TempData的值。 我不想在view.cshtml中編寫腳本,所以我添加了外部js文件。但我無法在該js文件中調用此ViewBag,ViewData,TempData值。呼叫ViewBag,ViewData的,TempData的外部JS文件
誰能告訴我如何調用這些值,而不寫入view.cshtml
在MVC應用程序,我想在外部.js文件ViewBag,ViewData的,TempData的值。 我不想在view.cshtml中編寫腳本,所以我添加了外部js文件。但我無法在該js文件中調用此ViewBag,ViewData,TempData值。呼叫ViewBag,ViewData的,TempData的外部JS文件
誰能告訴我如何調用這些值,而不寫入view.cshtml
由於剃刀代碼在服務器端運行的任何js代碼,這些值不可用於JavaScript運行在客戶端。我知道解決這個越來越唯一的辦法是在你的.js
文件中聲明瞭一些變量並在.cshtml
文件中對它們進行初始化。也許對你來說並不理想,但我希望它有幫助。
my.cshtml:
...
<script type="text/javascript">
myVar = @(ViewBag.myVar); // etc.
</script>
...
my.js
var myVar = null;
function myFunc() {
// Check for initialization
if (myVar == null)
alert("myVar not initialized!");
...
// use myVar
...
}
只是想指出,你應該總是*命名空間你的JavaScript變量,特別是在像這樣在全局範圍內聲明時。 –
要傳遞警報。 控制器:
TempData["Message"] = "My message text";
查看:
@if(TempData["Message"]) {
<input type="text" id="tempdata" class="hidden"
value="@TempData["Message"]"/>
}
JS:
var tempMessage = document.getElementById('tempdata') ?
document.getElementById('tempdata').value : null;
if(tempMessage) { alert(tempMessage); };
你必須寫的js代碼ATLEAST一行讀取該值,並將其分配給一個js變量,你外部js可以使用 – Shyju