2017-06-13 4 views
1

これで少し苦労します。コントローラから絶対URLをViewに渡し、jqueryのURLを取得してAjax呼び出しに渡そうとしています。 URLは正しく構築されていません。どのように正しい方法でそれを取得するための任意のヘルプ?jQueryのMVC ViewDataからURLを取得します。

ここで@ Html.Rawを試しました。しかし運がない!

MVCコントローラ

public IActionResult Something() 
{ 
    var baseDirPath= System.AppDomain.CurrentDomain.BaseDirectory; 
    var fileLocation = Path.Combine(baseDirPath, "wwwroot", "myDir", 
         "test.docx"); 
    ViewData["Path"] = fileLocation; 
    return View(); 
} 

MVCビュー

<script type="text/javascript"> 
    $(document).ready(function() { 
     //Cannotretrieve the path here from the viewdata 
     var path = "@Html.Raw(ViewData["Path"])"; 
     console.log(documentPath); 

     var kkk= $("#div"); 
     kkk.kendoWindow({ 
      open: function (e) { 
       $.ajax({      
        url: documentPath, 
        async: true, 
        success: function (msg) { 
         //success 
        }, 

       }); 
      } 
     }).data("kendoWindow").center().open(); 
    }); 
</script> 
+0

は、あなたが例のパスを表示することができますjqueryのでHtml.Encode()ViewData.Eval()を使用することができ、それが何であるかをパス? –

+0

更新されたコントローラコード – aspnetbeginner245

+1

絶対パスを使用してファイルにアクセスできないため、相対パスを使用する必要があります –

答えて

0
if your view is razor: 

var str = @Html.Raw(Json.Encode(ViewData["Path"])); 

か、Webフォーム、JavaScriptSerializerを使用して(とあなたのWEBフォームにtheproper名前空間をインポートした後だ場合 - System.Web.Scriptを。シリアライズ):

var str = <%= new JavaScriptSerializer().Serialize(ViewData["Path"])) %>; 
in MVC application. Use view models and strongly typed views so that your code looks like this: 

var str = <%= new JavaScriptSerializer().Serialize(Model.Path) %>; 
This technique is even cooler as now you can JSON serialize the entire view  model: 

var model = <%= new JavaScriptSerializer().Serialize(Model) %>; 
var str = model.Path; 
+0

ありがとうございますsd.n.私は剃刀を使用しています。しかし、私はJson.Encodeで 'Encode'を解決できません。私はMVC6を使用しています – aspnetbeginner245

+0

@ aspnetbeginner245 - MVC 6はMVCコアに名前が変更されました。適切な回答が必要な場合は、正しいタグを質問に追加する必要があります。 – NightOwl888

0

あなたが

var path = '@Html.Encode(ViewData.Eval("Path"))'; 
console.log(path); 
関連する問題