首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将ViewData从控制器传递给JS

如何将ViewData从控制器传递给JS
EN

Stack Overflow用户
提问于 2015-05-15 18:50:36
回答 2查看 3.2K关注 0票数 1

在下面的场景中,我将数据从控制器传递到视图。

控制器:

代码语言:javascript
运行
复制
  public ActionResult Create(string ID)
        {
            if (ID!= null)
            {
                int nid = Convert.ToInt32(ID);
                DataWiz NDW = new DataWiz();
                ViewData["Filter"] = NDW.Filter(nid);
            }
            return View();
        }

视图(Razor):

代码语言:javascript
运行
复制
    @{
            var Filter = ViewData["Filter"];
    }
@section Create(//this is rendered in from Layout)
    {
    <script src="@Url.Content("~/Scripts/Create.js")" type="text/javascript"></script>

}

调试视图时,我能够在筛选器中看到数据,但是如何在document函数中将数据传递给JS。

JAVASCRIPT:

代码语言:javascript
运行
复制
$(document).ready(function () {
    var test = '<%= ViewData["Filter"] %>';
    });

我的js是从布局中呈现的,而不是在我的剃须刀视图中使用标记。

这是从控制器获取视图数据到JS的正确方法吗?如果是这样的话,我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-20 16:14:25

经过几次尝试,我发现这是访问JS中的ViewData或ViewBag的一种方法。

我使用了KO optionsAfterRender,如下所示

视图

代码语言:javascript
运行
复制
<select  data-bind="options: SubType, value: selectedSubType, optionsValue:'SubTypeID', optionsText:'SubTypeDescription',optionsAfterRender:function(){setOptionST(@Filter.SubTypeID);}"></select>

JS

在视图模型中

代码语言:javascript
运行
复制
 self.setOptionST = function (x) {
        //here we can do whatever is intended to in my case to set the initial value in dropdown
        self.selectedSubType(x);
    };
票数 0
EN

Stack Overflow用户

发布于 2015-05-16 06:34:32

使用如下:

代码语言:javascript
运行
复制
<script type="text/javascript">
    var test = <%= serializer.Serialize(ViewData["Filter"]) %>;
</script>

也许这个能帮到你。

Solution 1 Solution 2

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30266755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档