【问题标题】:How to access data from @Html.Raw object in jquery如何从 jquery 中的@Html.Raw 对象访问数据
【发布时间】:2017-05-27 06:36:53
【问题描述】:

我在视图中使用JQuery 访问ViewBag 数据。它工作正常,如下所示。

var theData = '@Html.Raw(Json.Encode(ViewBag.DealDetails))';

console.log("ss ", theData);

它给出如下输出。

现在我想访问这些数据例如:月份、价格。我怎样才能访问这些。希望您能对此提供帮助。

【问题讨论】:

    标签: javascript c# jquery razor


    【解决方案1】:

    如果你有对象数组。遍历数组并使用 object.key 访问

    这里提供的小例子

    var data = [{price:23,month:2,other:"sfdsdf"},{price:11,month:12,other:"hello"},{price:212,month:1,other:"hello"}];
    
    
    for(var i=0;i<data.length; i++){
      console.log("Price "+data[i].price);
      console.log("Month "+data[i].month);
    
    }

    【讨论】:

    • 上面写着undefined。我检查了theData的类型,所以它是string
    【解决方案2】:

    你得到了一个对象数组,所以你可以像这样访问它:

    var month = theData[0].Month; // Month of first item
    

    或者如果你想循环所有项目:

    for (var i = 0; i < theData.length; i++) {
        alert(theData[i].Month);
        //Do something
    }
    

    编辑

    您可以改为这样传递数据:

    <script>
        var theData = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(ViewBag.DealDetail))
    <script>
    

    【讨论】:

    • 上面写着undefined。我检查了theData的类型,所以它是string
    • @brian 看到我的编辑。确保ViewBag.DealDetail 不是服务器端的字符串,而是对象。
    • @brian 如果ViewBag.DealDetails 是一个json 字符串,那么你需要使用DeserializeObject 方法。如果它有对象,那么SerializeObject 应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    相关资源
    最近更新 更多