【发布时间】:2017-06-22 08:11:10
【问题描述】:
假设我有一个双重类型的属性
[Display(Name = "Retail")]
public double Price { get; set; }
在视图中
@Html.EditorFor(model => model.Price, new { htmlAttributes = new { @class = "form-control",@type="number",@min=0 } })
就目前而言,如果用户没有输入任何内容或删除此文本框中的值。null 将在提交时传递给控制器。
默认情况下自动为其分配 0 的值,而无需为 double/int/long 数字字段的每个字段编写手动 javascript?
我的模型
public partial class Product
{
}
public class ProductsAttribute
{
[Display(Name = "Retail")]
[Range(0, double.MaxValue)]
public double Price{ get; set; }
}
数据库第一个生成类`
public partial class Product
{
public Product()
{
this.Machines = new HashSet<Machine>();
}
public double Price { get; set; }
public virtual ICollection<Machine> WMFMachines { get; set; }
}
【问题讨论】:
-
不能在model的构造函数中设置默认值吗?
-
在控制器的参数中写入
=0可以解决问题,对吧? -
一个技巧可以让列的属性为空。如果用户不输入任何值,它将保存空值
-
如果我在 3 页中使用它。我需要在控制器中 3 次?如果我的实体有超过 3 个。意味着我需要在 3 页中分配它 9 次。在构造函数中:用户按退格键,该值将消失。提交时。它仍然是空的。
-
属性不是
nullable,所以会在POST方法中初始化为零。如果你已经实现了客户端验证,你甚至不能提交,除非输入有一个有效的数字。
标签: javascript c# asp.net-mvc