Asp.net mvc 如何将Html.EditorFor用于模型属性,以便清除现有值并获取用户在mvc中输入的新值?

Asp.net mvc 如何将Html.EditorFor用于模型属性,以便清除现有值并获取用户在mvc中输入的新值?,asp.net-mvc,editorfor,Asp.net Mvc,Editorfor,我有一个在我的模型中定义的属性,如下所示: public decimal? Amount { get; set; } 我的表中有一列名为“Amount”,它可以有Amount列的值 然后我有一个视图,其中我需要有一个用于金额列的编辑器。我将其定义如下: @Html.Editor("Amount", new { htmlAttributes = new { @class = "form-control" } }) @Html.ActionLink("Submit", "Ente

我有一个在我的模型中定义的属性,如下所示:

    public decimal? Amount { get; set; }
我的表中有一列名为“Amount”,它可以有Amount列的值

然后我有一个视图,其中我需要有一个用于金额列的编辑器。我将其定义如下:

 @Html.Editor("Amount", new { htmlAttributes = new { @class = "form-control" } })  
 @Html.ActionLink("Submit", "EnterAmount", new { id = Model.ItemID, amount = Model.Amount }, new { @class = "btn btn-primary" })  
我的问题是,在渲染视图时,我希望编辑器区域为空,但它从数据库中获取值并将其分配到我的编辑器字段中

我希望用户能够在编辑器字段中输入数据金额值,然后在我的提交按钮上单击,我希望将新输入的数据传递给我的控制器,并使用用户输入的新值覆盖数据库中的金额列

我的按钮定义如下:

 @Html.Editor("Amount", new { htmlAttributes = new { @class = "form-control" } })  
 @Html.ActionLink("Submit", "EnterAmount", new { id = Model.ItemID, amount = Model.Amount }, new { @class = "btn btn-primary" })  
当我运行代码设置时,我的编辑器字段不是空的,它预先填充了数据库中已有的数据。我不需要这个。我希望我的编辑器字段为空

第二,如果我清除了预先填写的金额,并输入了一个新的金额,然后单击我的提交按钮,它不会获取新输入的数据,而是使用相同的先前数据

我怎样才能让它工作

谢谢

您必须使用:

@Html.Editor
例如:

@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
@ActionLink是razor代码,在将其发送到视图之前在服务器上进行评估。新的{id=Model.ItemID,amount=Model.amount}将基于模型的原始值而不是您所编辑的值来设置路由/查询字符串值。您需要一个表单,并将表单发布到标记为[HttpPost]的方法。链接用于获取数据,不应用于调用更改数据的方法