2017-04-13 25 views
0

我在瀏覽一個.cshtml文件,我想在腳本中使用型號:如何使用模型在Javascript(C#ASP.NET MVC)

<script> 
    function back() 
    { 
     var i = 0; 
     console.log(@Model[i].Id;) 

    } 
</script> 

它最高審計機關的名稱「我」在當前情況下不存在。

<script> 
    function back() 
    { 
     console.log(@Model[0].Id;) 

    } 
</script> 

這工作正常。我怎麼能得到我。模型的元素?

+0

您可以顯示模型類嗎? – Win

+0

如果你正在迭代模型(for(int i = 0; ....),那將是你的'i'。 – Crowcoder

回答

0

您試圖混合使用客戶端和服務器端代碼,這實在不是一個好主意,但是你可以變通辦法,使其通過做這樣的工作:

@{ 
    int i = 0; 
} 
<script> 
    function back() 
    { 

     console.log(@Model[i].Id;) 

    } 
</script> 

這會爲你工作,但正如我所說你不應該做這種事情。

+0

謝謝。但是如果我是正確的,'i'不能在腳本中改變,或者可以嗎? – Esad

+0

你不能,你究竟在做什麼,因爲我說這不是一個好主意,混合服務器端和客戶端代碼,剃鬚刀在執行javascript之前在服務器端執行 –

+0

我試圖做一個在'cshtml'中使用腳本,'i'代表我必須顯示的圖像,有一個帶有onclick =「back()」的「上一張圖像」​​,函數back()應該減少var i並設置img src到Model [i] .NewImage(它是圖像的源代碼) – Esad

0

你不能那樣做。 Console.log是javascript,所以它運行在前端,頁面已被渲染後,因此您不再有權訪問您的MVC模型

您應該將模型保存到JavaScript上的數組,以便在頁面加載它時被拒絕。

function back() 
{ 
    var i = 0; 
    var jsArray = @Html.Raw(Json.Serialize(Model)); 
    console.log(jsArray[i].Id;) 

}