当视图模型发送到控制器时,使用以下代码MyValue
时会丢失。
@Html.TextBoxFor(x => Model.MyValue, new { @Value = String.Format("{0:N0}", Model.MyValue) })
当我删除String.Format()部分时,值正确传递。 Fyi,MyValue
是双重的。
如何在保留格式的同时传递MyValue
?
我尝试过使用单独的HiddenFor
,但这不起作用。另外,我怀疑如果MyValue
字符串而不是double,则值将被传递。但是,现在我宁愿保持双倍,除非没有更简单的方法。
修改
不幸的是,我仍然遇到同样的问题。以下是有关情况的更多细节。
当我输入不带逗号的数字(例如123456)时,以下代码正常工作:该号码被发送到控制器的“保存”操作,并且文本框中显示123,456。但是,当我再次单击“保存”并尝试使用逗号输入数字123,456时,“保存”操作仅在模型参数中接收零并且文本框中显示零
我做错了什么?
以下是模型:
public class FormatTextBoxFor
{
public double MyDouble { get; set; }
}
这是控制器:
public class FormatTextBoxForController : Controller
{
public ActionResult Index()
{
FormatTextBoxFor model = new FormatTextBoxFor();
return View(model);
}
[HttpPost]
public ActionResult Save(FormatTextBoxFor model)
{
return View("Index", model);
}
}
观点:
@using (Html.BeginForm("Save", "FormatTextBoxFor", FormMethod.Post))
{
<p>@Html.TextBoxFor(x => x.MyDouble, string.Format("{0:n0}", Model.MyDouble) )</p>
<input type="submit" name="submit" value="Save" id="submit" />
}
答案 0 :(得分:1)
尝试使用它:
@Html.TextBoxFor(model => model.MyValue, new { @Value = Model.MyValue.ToString("N0") })