在我的mvc razor视图中,我有以下代码:
@if (Model != null) {
if (Model.Meals != null)
{
var grid = new WebGrid(Model.Meals, defaultSort: "MDate");
double Total = Model.Meals.Where(x => x.FINtravelID == Model.FINtravelID).Sum( t =>t.MTAmount);
在脚本标题中,我需要在此代码中获取上面“Total”的数据:
$(function () {
$("#grid tbody").append('<tr><td><b>Total</b></td><td><b>' + Total.toFixed(2) + '</b> </td></tr>');
})
我试图在Total面前添加@,但它没有编译,有人知道如何让它工作吗?
答案 0 :(得分:0)
除非将其嵌套在元素或隐藏的输入中,然后使用JS检索该数据,否则您将无法在代码块之外检索Total
。因此,例如,如果您的代码如下所示:
@if (Model != null)
{
if (Model.Meals != null)
{
var grid = new WebGrid(Model.Meals, defaultSort: "MDate");
double Total = Model.Meals.Where(x => x.FINtravelID == Model.FINtravelID).Sum( t =>t.MTAmount);
<div id="Total">@Total</div>
}
}
您可以使用JS获取数据,但是您需要将值转换为数字才能在其上使用isFixed()方法,因为JS隐式地键入字符串。所以使用Number()来转换string =&gt;双:
<script type="text/javascript">
$(function() {
var total = Number(document.getElementById('Total').innerHTML).toFixed(2);
$("#grid tbody").append('<tr><td><b>Total</b></td><td><b>' + total + '</b> </td></tr>');
});
</script>