3

从 MVC4 和 Razor 表单开始,但在提交表单之前无法在表单中显示计算字段。

比如说,为了简单起见,我们有价格和数量字段,它们是可编辑的文本框和第三个只读文本框,用于显示计算出的总价格 * 数量。

这篇文章表明使用我们新奇的 Razor 非常简单,但是当我们尝试以下操作时,表单上绝对没有任何动态变化:

@{
   var value = model.Item.Value;
   var price = model.Item.Proce;
   var calculated = value * price;
}

<div class="price">Your price: @calculated</div>
4

1 回答 1

5

如果您希望它在用户键入时或在提交表单之前是实时的,您将不得不使用 javascript;服务器端剃须刀代码是不够的。剃刀代码只会在页面第一次渲染时执行。

你有几个选择:

  1. 当用户完成输入时,通过 ajax 将数据发送到服务器以获得计算的总数。获取响应并将其显示在页面上
  2. 只需在用户输入时在客户端完全更新计算(您可以使用 MVVM 框架来帮助解决此问题(例如 Knockout.js))

编辑

添加一些示例链接:

这是#1的示例:在asp.net mvc中对控制器进行简单的Ajax调用

以下是如何实现#2 的示例:http: //knockoutjs.com/examples/cartEditor.html

就我个人而言,我会在客户端(#2)上进行计算,然后在服务器端进行验证,因为这很重要。

于 2013-09-18T15:51:55.893 回答