C# 使用String.Format()时丢失TextBoxFor value

C# 使用String.Format()时丢失TextBoxFor value,c#,asp.net-mvc,C#,Asp.net Mvc,使用以下代码时,视图模型发送到控制器时,MyValue将丢失 @Html.TextBoxFor(x=>Model.MyValue,新的{@Value=String.Format(“{0:N0}”,Model.MyValue)}) 当我删除String.Format()部分时,值被正确传递。仅供参考,MyValue为双精度 如何在保留格式的同时传递MyValue 我曾尝试使用一个单独的HiddenFor,但这不起作用。另外,我怀疑如果MyValue中传递的是字符串而不是双精度的值。然而,现在我宁愿

使用以下代码时,视图模型发送到控制器时,MyValue将丢失

@Html.TextBoxFor(x=>Model.MyValue,新的{@Value=String.Format(“{0:N0}”,Model.MyValue)})

当我删除String.Format()部分时,值被正确传递。仅供参考,
MyValue
为双精度

如何在保留格式的同时传递
MyValue

我曾尝试使用一个单独的
HiddenFor
,但这不起作用。另外,我怀疑如果
MyValue
中传递的是字符串而不是双精度的值。然而,现在我宁愿保留双份,除非没有更简单的方法

编辑

不幸的是,我仍然有同样的问题。以下是有关情况的更多细节

当我输入一个没有逗号的数字(例如123456)时,以下代码可以正常工作:该数字被发送到控制器的保存操作,123456显示在文本框中。但是,当我再次单击“保存”并尝试用逗号输入数字123456时,保存操作仅在模型参数中接收到一个零,并且在文本框中显示一个零

我做错了什么

模型如下:

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" />
}
@使用(Html.BeginForm(“Save”、“FormatTextBoxFor”、FormMethod.Post))
{
@TextBoxFor(x=>x.MyDouble,string.Format(“{0:n0}”,Model.MyDouble))

}
尝试使用以下方法:

  @Html.TextBoxFor(model => model.MyValue, new { @Value = Model.MyValue.ToString("N0") })

我只能猜测,但是你的双精度的值是多少?例如,如果您使用“0.333”执行此操作,它将显示“0”,并且只返回0.0-顺便说一句:
.TextBoxFor
有一个重载,您可以在其中提供格式字符串-您应该使用此选项,我在使用此选项时从未遇到过任何问题-您对“我的值丢失”的意思是什么?@UğurAldanmaz它返回0。您能给出一个示例输入值,以便在格式化时返回零吗?@CarstenKönig,您有使用该重载的示例吗?