我正在加载模型以查看并显示它。然后我对其中一个字段进行更改并将其发回。根据断点,我正在使用正确的动作方法,但传入的模型不包含任何变化。
我怀疑我在视图中有未绑定的控件。我两次都尝试了同样的问题。
@Html.TextBoxFor(bike => bike.Color)
<input type="text" value="@Model.Color" />
我没有正确绑定它吗?我该怎么做?
使用断点命中的控制器如下所示。请注意,传入的自行车根据智能感知不包含任何变化。如果我在VS中手动进行更改,它们将存储到数据库中。
public ActionResult BikeStore(Bike bike)
{
...
return RedirectToAction("Bikes");
}
模型是Code First生成的。
public partial class Bike
{
[Key]
public Guid Id{get; set;}
[Required]
[StringLength(999)]
public string Color { get; set; }
}
使用此功能完成提交。
@Html.ActionLink("Submit", "BikeStore", "Home", @Model, null)
但是,如果我执行以下操作,它可以正常工作 - 添加到控制器中。但不是页面上任何控件的实际内容。所以我非常肯定那些没有约束,我无法弄清楚为什么或如何制作它们。
@Html.ActionLink("Submit", "BikeStore", "Home", new Bike
{
Id = Model.Id,
Color = Model.Color + "!"
}, null)
答案 0 :(得分:1)
提交操作错误。您正在传递@Model,但这将是渲染视图时的模型。您应该使用带有提交按钮的表单。这会将用户编辑的值绑定到帖子上的模型。
@using (Html.BeginForm("BikeStore", "Home", FormMethod.Post)
{
// your inputs
// ...
<input type="submit" value="Submit">
}