如何将javascript输出到asp.net mvc3中的视图?

Hca*_*tek 0 javascript asp.net-mvc json asp.net-mvc-3

大家早上好,

我的视图中有一个javascript变量.我一直这样做......

 var skinData = null;
Run Code Online (Sandbox Code Playgroud)

然后在document.ready ....

 $.ajax({
                type: 'POST',
                url: 'theme/getskins',
                data: {},
                contentType: 'application/json; charset=utf-8',
                success: function(data){
                    skinData = data;
                }
        });
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么我在加载视图后执行此操作.我正在尝试在_ViewStart.cshtml中执行此操作

viewPage.ViewBag.SkinInfo = new JsonResult { Data = SkinManager.GetSkins() };
Run Code Online (Sandbox Code Playgroud)

如何获取此值并将其值输出到我的javascript变量.当我真的想在第一次旅行时将其推送到客户端时,我认为我不需要再做另一个请求.任何提示或建议当然值得赞赏.我该怎么做才能正确?我尝试了一些这方面的变化,但显然是行不通的.好像......

  var skinData = @ViewBag.SkinInfo.Data;      
Run Code Online (Sandbox Code Playgroud)

这只是输出命名空间.任何想法如何正确地做到这一点?

干杯,
〜在圣地亚哥

Mar*_*man 5

您将需要使用一些序列化程序将您的.GetSkins()方法结果转换为json对象.内置JavaScriptSerializer或json.net

JavaScriptSerializer serializer = new JavaScriptSerializer();
viewPage.ViewBag.SkinInfo = serializer.Serialize(SkinManager.GetSkins());
Run Code Online (Sandbox Code Playgroud)

然后在你看来

var skinData = @Html.Raw(ViewBag.SkinInfo);
Run Code Online (Sandbox Code Playgroud)