Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从jQuery中的MVC ViewData检索URL_Jquery_Asp.net_Asp.net Mvc_Asp.net Mvc 4_Razor - Fatal编程技术网

从jQuery中的MVC ViewData检索URL

从jQuery中的MVC ViewData检索URL,jquery,asp.net,asp.net-mvc,asp.net-mvc-4,razor,Jquery,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Razor,有点挣扎。我将从控制器传递一个绝对URL以供查看,并尝试在jquery中检索该URL以将其传递给Ajax调用。URL的构造不正确。有没有关于如何以正确的方式检索它的帮助 我在这里试过@Html.Raw。但是没有运气 MVC控制器 public IActionResult Something() { var baseDirPath= System.AppDomain.CurrentDomain.BaseDirectory; var fileLocation = Path.Comb

有点挣扎。我将从控制器传递一个绝对URL以供查看,并尝试在jquery中检索该URL以将其传递给Ajax调用。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>

$(文档).ready(函数(){
//无法在此从viewdata中删除路径
var path=“@Html.Raw(ViewData[“path”])”;
console.log(documentPath);
var kkk=$(“#div”);
肯多文多({
开放:功能(e){
$.ajax({
url:documentPath,
async:true,
成功:功能(msg){
//成功
},
});
}
}).data(“kendoWindow”).center().open();
});
或者,如果它是web表单,则使用JavaScriptSerializer(并在将适当的命名空间导入您的web表单-System.web.Script.Serialization之后):

var-str=;
在MVC应用程序中。使用视图模型和强类型视图,使代码如下所示:
var-str=;
这种技术更酷,因为现在您可以JSON序列化整个视图模型:
var模型=;
var str=model.Path;
或者,如果它是web表单,则使用JavaScriptSerializer(并在将适当的命名空间导入您的web表单-System.web.Script.Serialization之后):

var-str=;
在MVC应用程序中。使用视图模型和强类型视图,使代码如下所示:
var-str=;
这种技术更酷,因为现在您可以JSON序列化整个视图模型:
var模型=;
var str=model.Path;

您可以在jquery中使用
ViewData.Eval()
Html.Encode()

var path = '@Html.Encode(ViewData.Eval("Path"))';
console.log(path);

您可以在jquery中使用
ViewData.Eval()
Html.Encode()

var path = '@Html.Encode(ViewData.Eval("Path"))';
console.log(path);

您能否显示示例路径,它是什么路径?更新的控制器代码您无法使用绝对路径访问文件,您需要使用相对路径您是否解决了问题您能否显示示例路径,它是什么路径?更新的控制器代码您无法使用绝对路径访问文件,你需要使用相对路径。你解决问题了吗。我在用剃须刀。但我无法解析Json.Encode中的“Encode”。我正在使用MVC6@aspnetbeginner245-MVC 6已重命名为MVC Core。如果你想要相关的答案,你应该在你的问题中添加正确的标签。谢谢sd.n。我在用剃须刀。但我无法解析Json.Encode中的“Encode”。我正在使用MVC6@aspnetbeginner245-MVC 6已重命名为MVC Core。如果你想要相关的答案,你应该在你的问题中添加正确的标签。
var path = '@Html.Encode(ViewData.Eval("Path"))';
console.log(path);