2017-03-01 166 views
0

我想從ViewData中獲取一個列表,然後在列表中將這個列表變成一個var,這樣腳本中的其他函數就可以使用var; 我有搜索和做一些嘗試做到這一點,在腳本代碼中如何從ViewData中獲取數據cshtml

<script> 
     var t = {}; 
     @{foreach (var firstName in (ViewData["tags"] as List<Tag>)) 
      { 

      @Html.Raw(firstName.Id); 
     } 
     } 
</script> 

在HTML中我可以看到的結果是我想要的。 但是當我改變它像這樣

[email protected](firstName.Id) 

它會說t爲不存在的,歡迎任何建議,謝謝。

回答

0

如果你想從ViewData的數據存儲到一個JavaScript對象,然後嘗試實施下列方式代碼:

<script type="text/javascript"> 

var data = []; 
@foreach (var d in (ViewData["tags"] as List<MvcApplication1.Models.Test>)) 
{ 
    <text> 
     var obj = {}; 
     obj.Id = "@d.Id" 
     obj.Name = "@d.Name" 
     data.push([obj]); 
    </text> 
} 

console.log(data); 
+0

@Mamum感謝,它works.but我無法理解,你能對此進行一些討論。 –

+0

即使我不確定。但我認爲這只是一個幫助標籤,用於在剃鬚刀內編寫一些JavaScript代碼。 – Mamun

+0

下面是我發現的一些解釋:「標記是Razor專門處理的元素,它使Razor將塊的內部內容解釋爲內容,並且不渲染包含標記元素(僅意味着元素的內部內容將被渲染 - 標籤本身不會)。當您想要呈現多行內容塊不包含HTML元素時,這使得它很方便。「鏈接:https://weblogs.asp.net/scottgu/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax – Mamun

相關問題