2017-05-15 8 views
0

ASP MVCに次のコードがあります。私は音楽を再生するためのjsの正しいフォルダを取得するためのパラメータとしてモデルを取得しようとしています。エラーが発生する:モデルが定義されていません

@foreach (var item in Model) { 
    <tr> 
     <td> 
      @Html.DisplayFor(modelItem => item.Name) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.Genre) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.ReleaseDate) 
     </td> 
     <td> 
      var model = @Html.Raw(Json.Encode(item.Mp3file)); 
      <button onclick="getLocation(model)">Click me</button> 
     </td> 
     <td> 
      @Html.ActionLink("Edit", "Edit", new { id=item.Id }) | 
      @Html.ActionLink("Details", "Details", new { id=item.Id }) | 
      @Html.ActionLink("Delete", "Delete", new { id=item.Id }) 
     </td> 
    </tr> 
} 

「クリックしてください」をクリックすると、JSは値をvarに保存します。だから、私は私のmp3ファイルの私の場所を格納するvarモデルを作成しました。これをクリックすると、関数getLocation(model)をシステムに入力する必要があります。しかし、それは文句を言わない私が間違って何をやっているJS

function getLocation(model) { 
var tekst = model; 
console.log(tekst);} 

My機能をカバー?

+0

はあなたがページを閲覧の上に@model宣言していますか? – vabii

+0

私はそれをどのように呼び出すことができますか? –

答えて

1

あなたは、「@」を使用して、サーバー側のコードを参照する必要があります。

var model = @Html.Raw(Json.Encode(item.Mp3file)); 
<button onclick="getLocation('@model')">Click me</button> 
+0

それは単純なタイプであれば間違いなく機能しますが、複雑なモデルです。好奇心から(私は今それをテストすることはできません)、その構文は自動的にJSONにモデルをシリアル化しますか?もしそうでなければ、これでは不十分なので、代わりに適切な直列化方法を使用する必要があります。 – ADyson

+0

Html.Raw(Json.Encode(model))はモデルをJSONにシリアル化します。 –

+0

それはあなたの答えにあるはずですか? – ADyson

関連する問題