【发布时间】:2011-07-22 16:02:30
【问题描述】:
我的视图生成了一些 js 代码。我需要将我的模型转换为接口类型以获取一些属性。
这是一个例子:
<script type="text/javascript" language="javascript">
var js_array = [];
@for (var i = 0; i < ( Model as MyProject.Models.IMyInterface ).PropertyList.Count; i++) {
<text>
js_array['@( Model as MyProject.Models.IMyInterface ).PropertyList[i].id'] = {};
</text>
}
</script>
我明白了:
<script type="text/javascript" language="javascript">
var js_array = [];
js_array['MyProject.Models.MyModelType.PropertyList[i].id'] = {};
js_array['MyProject.Models.MyModelType.PropertyList[i].id'] = {};
js_array['MyProject.Models.MyModelType.PropertyList[i].id'] = {};
js_array['MyProject.Models.MyModelType.PropertyList[i].id'] = {};
js_array['MyProject.Models.MyModelType.PropertyList[i].id'] = {};
js_array['MyProject.Models.MyModelType.PropertyList[i].id'] = {};
js_array['MyProject.Models.MyModelType.PropertyList[i].id'] = {};
js_array['MyProject.Models.MyModelType.PropertyList[i].id'] = {};
</script>
但我需要:
<script type="text/javascript" language="javascript">
var js_array = [];
js_array['1'] = {};
js_array['2'] = {};
js_array['3'] = {};
js_array['4'] = {};
js_array['5'] = {};
js_array['6'] = {};
js_array['7'] = {};
js_array['8'] = {};
</script>
你可以看到这个显示类型而不是值...
你能告诉我为什么以及如何解决它吗?
【问题讨论】:
-
之所以这样是因为
@()是一个特殊的块,它只解析()中包含的内容。您的代码只有()中的类,因此它在该类上调用ToString,然后假定.PropertyList...只是常规输出,因为它不再受@的控制。
标签: c# javascript asp.net-mvc-3 view razor