2016-06-14 18 views
-1

JavaScriptにいくつかの問題があります。 JavaScriptをrazor @foreachセクションで使用する方法は?だから、私はモデルからいくつかのデータを取って、そのデータをHTMLテーブルに入れようとしています。 @foreachセクションで設定された変数へのアクセスが必要です(変数には上限があります)。誰かが私を助けることができますか?ASP.NET MVC 4のJavaScript

<script type="text/javascript"> 
    function AddClick() { 

    @foreach (var x in Model) { 
     var FIRSTNAME= @x.Name; 
     var LASTNAME= @x.Surname; 
     var SUBJECT1= @x.Physics; 
     var SUBJECT2= @x.Math; 

     <text> 
     var table = document.getElementById("regtable"); 
     var row = table.insertRow(); 

     var zero = row.insertCell(); 
     var FirstnameCell = row.insertCell(1); 
     var LastnameCell = row.insertCell(2); 
     var PhysCell = row.insertCell(3); 
     var MathCell = row.insertCell(4); 

     FirstnameCell.innerHTML = FIRSTNAME ; 
     LastnameCell.innerHTML = LASTNAME; 
     PhysCell.innerHTML = SUBJECT1; 
     MathCell.innerHTML = SUBJECT2; 

     </text> 

     } 

} 

+1

これをチェックしてください。 http://stackoverflow.com/questions/5614941/mix-razor-and-javascript-code – Deep

+2

具体的にどのように失敗していますか?これによって生成されるクライアント側のコードは何ですか?問題を定義することは、常にそれを解決するための第一歩です。 – David

答えて

1

あなたは本当にこのようカミソリとJavaScriptを混在させることはできません。 Razorはサーバー側で実行され、JavaScriptはクライアント側で実行されます。 Razorがサーバー側でHTMLを生成しているとき、JavaScriptは利用できず、JavaScriptがクライアント側で実行されるときには、Razorコードは終了して終了します。

あなたができることは、Razorを使用してモデルデータをJavaScript変数にダンプしてから、クライアント側にスクリプトを使用させることです。コメントの@Deepが提供するリンクをチェックして、これを行う方法の一例を参照してください。

+0

私は自分の間違いを理解しました:)本当に、それはサーバーコードとクライアントコードを混在させるのは愚かです。解決策は - AJAXです。みんなありがとう –