2016-12-30 11 views
3

ViewDataを介してコントローラからHTMLページへのファイルパス(文字列)を送信しています。私はJavaScriptを使用してその文字列にアクセスし、それを消費し、javascriptでいくつかのalgoを実行してからそれらを消費し、同じhtmlページでいくつかのグラフを作成します。JavaScriptのASP.NET Core ViewDataアクセス

HTML

</head> 
<body> 
    <div id="mychart"></div> 
    <script> 
     var [email protected]["path"]; 
     //some javascript logic with the string path of the file. 
     //using results for output chart of id 'mychart' 
    </script> 
</body> 
</html> 

コントローラーアクションコード:

 public IActionResult CellResult(string outputpath) 
     { 
      ViewData["path"] = outputPath; 
      return View(); 
     } 

答えて

5

それは文字列値ですので、あなたは、単一引用符または二重引用符のいずれかでそれをラップする必要があります。

var path='@ViewData["path"]'; 
alert(path); 

EDIT:コメントを1として

はどのようにして、コントローラからhtmlページに文字列のリストを送信し、JavaScriptで にそれを使用することができますか?文字列の代わりに文字列のリストを送信したい

文字列のリストを送信する場合は同じですが、これは複雑なタイプなので、これを変換するにはjsonシリアライザを使用する必要がありますオブジェクトを文字列に変換します。

だからあなたのサーバーで

var list = new List<string> {"Hi", "Hello"}; 
ViewBag.MyList = list; 

とビューの

<script> 
    var list = @Html.Raw(JsonConvert.SerializeObject(ViewBag.MyList)); 
    console.log(list); 
</script> 
+0

Uはまた、私は、コントローラからhtmlページに文字列のリストを送信することができる方法を教えてとJavaScriptでそれを使用してくださいできますか?文字列の代わりに文字列のリストを送信したい – touseef

+0

@touseef更新された答えを参照してください。 – Shyju

+1

ありがとう、それはちょうどうまく動作します:) – touseef