我在 MVC 模型中有以下属性:
[Range(0, double.MaxValue, ErrorMessage = "The Volume must have positive values!")]
public decimal? Volume { get; set; }
生成的HTML是
<input type="text" value="1,00" name="Product.Volume" id="Product_Volume" data-val-range-min="0" data-val-range-max="1.79769313486232E+308" data-val-range="The Volume must have positive values!" data-val-number="The field Volume must be a number." data-val="true" class="text-box single-line">
如何使生成的 HTML 像这样:
<input type="text" value="1,00" name="Product.Volume" id="Product_Volume" data-val-range-min="0" data-val-range-max="1.79769313486232E+308" data-val-range="The Volume must have positive values!" data-val-number="The field Volume must be a number." data-val="true" class="text-box single-line" data-type="decimal" >
区别在于附加的data-type="decimal"
我希望自动添加 HTML 属性,因此我不必手动添加它。
最佳答案
为 Decimal
类型创建您自己的显示模板和编辑器模板 View ,这样您就可以控制它的显示,然后控制任何 Decimal
类型的模型属性每当您调用 Html.DisplayFor(m => m.DecimalType)
或 Html.EditorFor(m => m.DecimalType)
将这些 View 添加到文件夹 Views > Shared > DisplayTemplates 和 EditorTemplates
例如,您的 EditorTemplate 将类似于:
@model decimal
@{
Layout = "~/Views/Shared/EditorTemplates/Template.cshtml";
}
@Html.TextBoxFor(x => x, new {data-type = "decimal"})
关于c# - 根据数据类型在 MVC 3 中自动生成 HTML 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10830554/