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

如何在javascript中访问对象属性?,javascript,jquery,asp.net,asp.net-mvc,Javascript,Jquery,Asp.net,Asp.net Mvc,我在视图中传递一个对象(模型),其中我编写了javascript代码。该对象具有我希望在javascript中访问的某些属性,以便根据这些属性的值创建下拉列表。 这是我的目标: public class TestObject { public BuildData ExteriorColor { get; set; } public BuildData InteriorColor { get; set; } } 及 那么,如何访问Javascript内部的Viewdata中存在

我在视图中传递一个对象(模型),其中我编写了javascript代码。该对象具有我希望在javascript中访问的某些属性,以便根据这些属性的值创建下拉列表。 这是我的目标:

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


那么,如何访问Javascript内部的
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>

我希望它能为您工作。

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

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

按ExteriorInteriorData中的属性重新设置值和文本。用于标记内的循环

@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>

由于这是MVC,您可以使用Razor中的一个循环来实现这一点,从外观上看不需要Javascript。使用Javascript来实现这一点是疯狂的(使用
@Html.DropDownListFor()
方法对在MVC中创建dropdownlist进行一些基本的研究)。但要回答您的问题-
var model=@Html.Raw(Json.Encode(model))
将您的模型转换为javascript对象。@ADyson如何在razor查询中按id访问选择列表的id?@Nirman我没有在模型中传递值,它在ViewData中。那么,我如何从中获得值呢
var list = JSON.parse($("#JSOBJ").data("JsObject"))
@Html.DropDownListFor(model => model.ExteriorColor.Data, new SelectList(Model.ExteriorColor.Data, "Value", "Text"))
@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>
$("#Exterior_Color").val();