【发布时间】:2015-06-12 16:23:24
【问题描述】:
我需要对从 SQL 服务器提取的数据执行一些转换计算。当我循环浏览集合时,似乎最好的地方是在视图中,但我不确定这是否是最佳实践。另外,我不确定如何在视图中进行操作。 我对此仍然相对较新并且学习缓慢,所以我什至不确定完成我想要做的事情的语法。
非常感谢任何和所有帮助。
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
@foreach (var item in Model.OR_OP)
{
<div class="panel panel-default">
@Html.Raw("<div class=\"panel-heading\" role=\"tab\" id=\"heading")@Html.DisplayFor(modelitem => item.NAME)@Html.Raw("\">")
<h4 class="panel-title">
@Html.Raw("<a data-toggle=\"collapse\" data-parent=\"#accordion\" href=\"#collapse")@Html.DisplayFor(modelitem => item.NAME)@Html.Raw("\" aria-expanded=\"true\" aria-controls=\"collapse")@Html.DisplayFor(modelitem => item.NAME)@Html.Raw("\">")
@Html.DisplayFor(modelitem => item.NAME)
-
@Html.DisplayFor(modelitem => item.DESCR)
@Html.Raw("</a>")
</h4>
<div>
<div class="btn-custom-start">Start</div>
</div>
<div>
<div class="btn-custom-stop">Stop</div>
</div>
@Html.Raw("</div>")
@Html.Raw("<div id=\"collapse")@Html.DisplayFor(modelitem => item.NAME)@Html.Raw("\" class=\"panel-collapse collapse collapse\" role=\"tabpanel\" aria-labelledby=\"heading")@Html.DisplayFor(modelitem => item.NAME)@Html.Raw("\">")
<div class="panel-body">
@Html.DisplayFor(modelitem => item.PWPLACE)
@Html.DisplayFor(modelitem => item.PPARTS)
@Math(item.PTE.Value/60) <------ this is where I would like to do the calculation.
@Html.DisplayFor(modelitem => item.PTE)
@Html.DisplayFor(modelitem => item.PTR)
</div>
@Html.Raw("</div> ")
</div>
}
</div>
【问题讨论】:
-
视图用于渲染 HTML,而不是执行计算。另外,不要在打印 HTML 时使用
@Html.Raw()。 -
MVC 中视图的一个好的做法是向它提供所有需要的信息,以便视图只呈现数据。此数据对象通常称为 ViewModel。
-
我在没有@Html.Raw() 的情况下尝试过,但格式不正确。
-
离题:不要使用这样的结构:
@Html.Raw("<div class...。这是一个非常糟糕的做法。请改用@:或<text> -
你能给我一个正确语法的例子吗?每次我尝试不使用
@Html.Raw()时,我的页面都无法正确呈现。我需要将item.Name中的数据附加到折叠 ID。我需要这个 id="collapse5" 我不断得到这个 id="collapse 5 没有`@Html.Raw()'
标签: c# asp.net-mvc razor model-view-controller visual-studio-2013