【问题标题】:Hidden Fields are not storing certain values in MVC隐藏字段未在 MVC 中存储某些值
【发布时间】:2014-04-08 09:42:01
【问题描述】:

在我的 ASP.NET MVC 视图中,我有以下隐藏变量。

@Html.HiddenFor(m => m.TotalAmount)
@Html.HiddenFor(m => m.SelectedAmount)

我能够在页面中显示,

@Model.TotalAmount

我使用 AJAX 来获取这些隐藏字段,如下所示。 $("#TotalAmount").val() 和 $("#SelectedAmount").val()。 TotalAmount 始终为 0,并且我得到了正确的 SelectedAmount。

请帮我找出问题所在。

更新:

从开发者工具我看到:

但是,我使用 @String.Format(new CultureInfo("en-US"), "{0:N}", @Model.TotalAmount) 获得了在页面中打印的 Model.TotalAmount 的值

【问题讨论】:

  • 为给定模型呈现视图时的输出 html 是什么? TotalAmount 在 html 中有值吗?
  • 是的,当我说 Model.TotalAmount 时它显示正确的值
  • 查看 HTML 源代码,查看隐藏字段是否正确呈现
  • 您是否多次渲染总金额?
  • 是否有任何脚本可以更新元素 $("#TotalAmount")?

标签: c# javascript asp.net-mvc hidden-field


【解决方案1】:

您总是可以像这样将值打印到脚本中:

<script type="text/javascript">
    function myFunction() {
        var totalAmount = @Model.TotalAmount;       
    }   
</script>

当然,如果您想将模型中的值保留在提交中,您仍然需要隐藏字段。

这只是解决您问题的一种方法。

【讨论】:

  • 或者只是使用开发者工具检查隐藏字段的值
  • 好的,如果我手动将 @Model.TotalAmount 传递给该 Ajax 字段,它将接受它。
  • @erikkallen 隐藏字段中的值为零?
【解决方案2】:

试试这个: 这将帮助你达到同样的目的

<input type="hidden" name="Step" value="@Model.TotalAmount" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多