c# - 在 vue.js 中渲染一个剃刀视图循环
问题描述
我试图弄清楚如何使用 for 循环同时呈现 html 和文本。
<div id="container">
<ul>
<li v-for="item in itemDetails" :id="item.id">{{ item.result }}</li>
</ul>
</div>
new Vue({
el: "#container",
data: {
itemDetails: [
{ id: "firstId", result: "@Model.First" },
{ id: "secondId", result: '@foreach(var newItem in @Model.List)
if(newItem.Index == Model.ListId)
{
<option value="newItem.Index" selected>@newItem.Value</option>
}
else
{
<option value="newItem.Index">@newItem.Value</option>
}
'
}
]
}
});
第一项很好,因为它只是文本,但如果我需要将 HTML 作为第二个结果呈现,它就不起作用。我不知道如何同时做这两个。第二个项目正在呈现一个选择下拉列表,其中包含它等于被选中的项目。
解决方案
不要@Model
在 JavaScript 中使用,而是将您的@Model
转换为 JSON,然后将其传递到您的data
属性中。你可以通过使用@Html.Raw(Json.Encode(Model))
. 然后基于此创建一个计算属性。
data: {
itemModel: @Html.Raw(Json.Encode(Model))
},
computed: {
itemDetails() {
return this.itemModel.map(x => /* whatever you want to do here . . . */);
}
}
推荐阅读
- azure - 来自类库的 Azure 函数调用方法?
- javascript - jsPDF在IE11浏览器中无法正常工作
- python - Pandas Dataframe - 如何获得按值分组的滚动和?
- swift - 无法将“Int”类型的值分配给“String”类型
- javascript - 如何使用 razor (.net core) 声明多个 javascript 变量
- tcp - 涉及两个以上端口的 TCP 握手
- c++ - 一个星号后跟一个定义数组的类名?C++
- javascript - 从 music21 流转换为 vexflow 脚本代码
- c++ - 为什么每次单击所需按钮时此应用程序都会关闭?
- c++ - 如何使用纯 WINAPI 在渐变背景上显示控件?