[英]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.