所以我希望解决我发现的一个非常特殊的问题。基本上我在Microsoft MVC中有具有十进制字段的模型。我将在视图中显示这些字段,并在屏幕上显示包含逗号(金钱值相隔数百)的屏蔽。基本上问题是我需要显示逗号版本并允许用户编辑它们,但是当我将值发布回服务器时,我需要删除逗号。我已经研究了一系列选项,包括jquery autonumeric插件(它有一个返回未格式化值的get方法,但不确定如何在后期将值返回到模型中),以及涉及剥离逗号值的dabbled通过jquery将它们提交回服务器之前(但我读到这并不总能得到保证,因为有时可以在jquery完成之前回发值。所以这就是我要做的事情来提供一些上下文:
我的实际模型类与此类似,只有一个类每个类大约有50个字段:
public class classtest
{
public decimal v { get; set; }
}
我在控制器中没有做任何特殊操作,我有一个方法将模型传递给视图,然后是另一个将模型作为参数的post方法,我将该模型用于保存回数据库。
@model MvcApplication1.Models.classtest
@{
ViewBag.Title = "Index";
}
@using (Html.BeginForm("Index", "Test", FormMethod.Post))
{
@Html.TextBoxFor(t => t.v, new { @class = "money" })
<input type="submit" name="submit" value="Submit" />
}
任何建议都将受到赞赏。
答案 0 :(得分:0)
我认为听起来你可以使用自定义模型绑定来处理将字符串转换回小数。我不能说我已经设置了一个,但是这里有另外一个post关于它,还有一个博客文章让它听起来非常直接{{3 }}
简而言之,看起来您创建了一个实现IModelBinder的类。然后使用Application_Start()中的ModelBinders.Binders.Add(...)将该类添加到模型绑定器中