ViewBag 动态属性似乎存在问题。可以说我有:
@{
ViewBag.Title = @Model.CourseName;
}
然后在页面上的表格中我有:
@Html.TextBox("Title", null, new {style="width:400px;"})
其中 Title 是数据库表中字段的名称。
当页面首次打开时,ID 为“Title”的文本框采用 ViewBag.Title 动态属性的值。
我对模型绑定的确切细节有点模糊,但这似乎是一个错误,或者如果不是,如果它是由于绑定过程而自然发生的事情,那么很高兴被警告这。
我发现的解决方法是将 ViewBag 属性重命名为:
@{
ViewBag.Titulo = @Model.CourseName;
}
(标题更改为 Titulo - 总是很高兴知道另一种语言以避免名称冲突......)
问题就消失了。
然而,问题是:
这种行为是可以预期的吗?这个错误很容易找到(花了一个小时才弄清楚,包括写这个问题),但我怀疑其他错误可能更多,嗯,深奥。
编辑:
改写问题:
Model Binder 会自动绑定它在 ViewBag 中找到的属性吗?即使我已传递给页面的强类型 ViewModel 中存在现有属性?当然 ViewModel 应该优先考虑?