在我看来,我有以下电话.
<%= Html.EditorFor(x => x.Cost) %>
Run Code Online (Sandbox Code Playgroud)
我有一个带有以下代码的ViewModel来定义Cost.
public decimal Cost { get; set; }
Run Code Online (Sandbox Code Playgroud)
但是,这会显示十进制值,小数点后有四位数(例如0.0000).我知道Decimal.toString("G")(MSDN)似乎解决了这个问题,但我不确定在哪里应用它.
一个解决方案似乎是创建一个局部视图"Currency.aspx".
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Decimal>" %>
<%= Html.TextBox(Model.ToString("g"), new { @class = "currency" }) %>
Run Code Online (Sandbox Code Playgroud)
并且[UIHint("Currency")]在我的视图模型.
这似乎不优雅.我认为这个问题已经在MVC框架或C#中的某个地方得到了解决,但我不知道更清洁的解决方案.
在MVC中处理编辑货币值的适当方法是什么?
我有一个体重为Kgs的字段(类型为double或使用其他东西?).在编辑视图中,我希望用户输入数字到千分之一.在显示视图中,我希望Kgs看起来像560.250
试着学习MVC3 + Razor.愿意探索JQuery,使用正则表达式,验证器,视图模板,查看模型......
基于约定的MVC的"魔力"需要习惯.对于使用哪种方法感到困惑.
预先感谢您的帮助.
我有一个使用Fluent Validation for MVC 5的ASP.NET MVC 5项目.我还使用jQuery masking插件自动添加数千个双值.
在模型中我有:
[Display(Name = "Turnover")]
[DisplayFormat(ApplyFormatInEditMode = true,ConvertEmptyStringToNull =true,DataFormatString ="#,##0")]
public double? Turnover { get; set; }
Run Code Online (Sandbox Code Playgroud)
在视图中我有:
<th class="col-xs-2">
@Html.DisplayNameFor(model=>model.Turnover)
</th>
<td class="col-xs-4">
@Html.TextBoxFor(model => model.Turnover, new { @class = "form-control number", placeholder="Enter number. Thousands added automatically" })
</td>
<td class="col-xs-6">
@Html.ValidationMessageFor(model => model.Turnover, "", new { @class = "text-danger" })
</td>
Run Code Online (Sandbox Code Playgroud)
为包含模型定义了一个流畅的验证器,但它不包含任何规则.我只使用服务器端验证.
public class MyModelValidator: AbstractValidator<MyModel>
{
public MyModelValidator()
{
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用模型绑定来解决这个问题.但是模型绑定器的断点永远不会受到打击 - 流畅的验证似乎阻止了达到模型绑定器的价值.
我是asp.net jquery和html5的初学者,我正在开发一个asp.net mvc 4网站,我有一个带有两个Date字段的表单.我不想手动插入日期,所以我尝试使用此解决方案来实现一个简单的datepicker:
<fieldset>
<legend>RangeDateViewModel</legend>
<div class="editor-label">
Start Date
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.StartDate, new{ @class = "date" })
@Html.ValidationMessageFor(model => model.StartDate)
</div>
<div class="editor-label">
End Date
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.EndDate, new{ @class = "date" })
@Html.ValidationMessageFor(model => model.EndDate)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jqueryui")
@Styles.Render("~/Content/themes/base/css")
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () …Run Code Online (Sandbox Code Playgroud)