繁体   English   中英

如何在javascript中访问对象属性?

[英]How to access object properties in javascript?

我在View中传递了一个对象(模型),并在其中编写了JavaScript代码。 该对象具有某些我想在javascript中访问的属性,以便从这些属性的值创建一个下拉列表。 这是我的对象:

public class TestObject
{
    public BuildData ExteriorColor { get; set; }
    public BuildData InteriorColor { get; set; }
 }

public class BuildData
{
    public List<ExteriorInteriorData> Data { get; set; }
    public bool isInstalled { get; set; }
    public BuildData()
    {
        Data = new List<ExteriorInteriorData>();
    }
}

现在在视图中,我通过ViewData有一个TestObject对象,我想在选择列表中填充List<ExteriorInteriorData>中存在的值。 基本上我想做这样的事情:

for (var i = 0; i < data.ExteriorColor.Data.length; i++) {
            $("#Exterior_Color").append($("<option " + (i == 0 ? "selected" : "") + "></option>").val(data.ExteriorColor.Data[i].ColorName + ", " + data.ExteriorColor.Data[i].RgbValue).html(data.ExteriorColor.Data[i].ColorName));
    } 

那么,如何访问Java内Viewdata存在的对象TestObject

如果您在同一视图中编写JavaScript,则只需使用此代码将模型对象转换为js对象。

var jsModel = @Html.Raw(Json.Encode(Model))

如果要在外部文件中创建一个html元素,然后在data-field中设置此模型,然后在js中获取此模型,如下所示

视图

<div data-JsObject="@Html.Raw(Json.Encode(Model))" id="JSOBJ"> </div>

JS外部文件

var list = JSON.parse($("#JSOBJ").data("JsObject"))

希望对您有用。

除javascript外,您可以使用defualt razor helper创建dropdownlist:

@Html.DropDownListFor(model => model.ExteriorColor.Data, new SelectList(Model.ExteriorColor.Data, "Value", "Text"))

外观值和内部属性中的Repale值和Text By属性

尝试这个。 在标记内使用for循环。

@model [yourproject].Models.TestObject
<select id="Exterior_Color" name="Exterior_Color">
    @foreach (var item in this.Model.ExteriorColor)
    {
        <option value="@item.RgbValue">@item.ColorName</option>
    }
</select>

您可以简单地从javasrcipt获取选定的项目

$("#Exterior_Color").val();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM