Asp.net mvc 4 通过更新字段删除值
我有这个: 视图: 但我可以更新其他值(颜色、重量、高度),但如果在更新视图中按save,则标记名称将被删除。我还检查了数据库,更新后标记值消失了。但是如果我只是按编辑(更新),那么首先我会在下拉列表中看到值(标记),但保存后标记值消失。即使我没有在更新视图中更改标记值 我就是想不出是怎么回事 谢谢 Oke 我知道这是个类型错误 但是你说的那些辍学者不正确是什么意思?因为你没有无限的字节标记列表。这就是为什么我选择制作一个包含所有标记、颜色和大小的下拉列表。因为管理员填写标记、大小等,然后用户可以选择标记、颜色等。但是您将如何设计不同的属性 我没有单独的颜色、标记等表格,但有必要吗Asp.net mvc 4 通过更新字段删除值,asp.net-mvc-4,visual-studio-2012,c#-5.0,Asp.net Mvc 4,Visual Studio 2012,C# 5.0,我有这个: 视图: 但我可以更新其他值(颜色、重量、高度),但如果在更新视图中按save,则标记名称将被删除。我还检查了数据库,更新后标记值消失了。但是如果我只是按编辑(更新),那么首先我会在下拉列表中看到值(标记),但保存后标记值消失。即使我没有在更新视图中更改标记值 我就是想不出是怎么回事 谢谢 Oke 我知道这是个类型错误 但是你说的那些辍学者不正确是什么意思?因为你没有无限的字节标记列表。这就是为什么我选择制作一个包含所有标记、颜色和大小的下拉列表。因为管理员填写标记、大小等,然后用户可
谢谢您没有将任何内容绑定到属性
标记
(您显示的内容绑定到ID
属性)。选择列表的名称最好与属性的名称不同
在控制器中
ViewBag.MarkList = new SelectList(db.Bycicles, "BycicleID", "Mark");
在我看来
@model YourAssembly.Bycicle
....
<div class="form-group">
@Html.LabelFor(m => m.Mark)
<div class="col-md-10">
@Html.DropDownListFor(m => m.Mark, (SelectList)ViewBag.MarkList)
@Html.ValidationMessageFor(m => m.Mark)
</div>
</div>
然后将选择列表分配给视图模型,而不是ViewBag注意,我认为选择列表没有意义,因为您将它们都绑定到了
db.Bycicles
。您是否有BycicleMarks
、BycicleColours
等表格?您试图编辑我的答案,但将被拒绝(添加评论或编辑您的问题)。注意我的更新(拼写错误ViewBag.MakeList
应该是ViewBag.MarkList
),因此如果还没有创建Bycicle
,那么新的选择列表(db.Bycicles,“Color”,“Color”,Bycicle.Color)代码>将为空-即您永远无法选择颜色。当然,对于与Bycicle
public class Bycicle
{
public int id { get; set; }
// [Column("Mark")]
public string Mark { get; set; }
public string Color { get; set; }
public string Weight { get; set; }
public string Height { get; set; }
public DateTime? LastTimeChecked { get; set; }
}
ViewBag.MarkList = new SelectList(db.Bycicles, "BycicleID", "Mark");
@model YourAssembly.Bycicle
....
<div class="form-group">
@Html.LabelFor(m => m.Mark)
<div class="col-md-10">
@Html.DropDownListFor(m => m.Mark, (SelectList)ViewBag.MarkList)
@Html.ValidationMessageFor(m => m.Mark)
</div>
</div>
public class BycicleVM
{
public int id { get; set; }
// other properties of Bycicle that you want to edit
public SelectList MarkList { get; set; }
// other select lists
}