gpt4 book ai didi

asp.net-mvc-3 - ASP.NET MVC 3 模型绑定(bind) - ViewBag.Title 与 id ="Title"的输入冲突

转载 作者:行者123 更新时间:2023-12-04 19:19:56 24 4
gpt4 key购买 nike

ViewBag 动态属性似乎存在问题。可以说我有:

@{
ViewBag.Title = @Model.CourseName;
}

然后在页面上的表格中我有:
@Html.TextBox("Title", null, new {style="width:400px;"})

其中 Title 是数据库表中字段的名称。

当页面首次打开时,ID 为“Title”的文本框采用 ViewBag.Title 动态属性的值。

我对模型绑定(bind)的确切细节有点模糊,但这似乎是一个错误,或者如果不是,如果它是由于绑定(bind)过程而自然发生的事情,那么很高兴被警告这。

我发现的解决方法是将 ViewBag 属性重命名为:
@{
ViewBag.Titulo = @Model.CourseName;
}

(标题更改为 Titulo - 总是很高兴知道另一种语言以避免名称冲突......)

问题就消失了。

然而,问题是:

这种行为是可以预期的吗?这个错误很容易找到(花了一个小时才弄清楚,包括写这个问题),但我怀疑其他错误可能更多,嗯,深奥。

编辑:

改写问题:

Model Binder 会自动绑定(bind)它在 ViewBag 中找到的属性吗?即使我已传递给页面的强类型 ViewModel 中存在现有属性?当然 ViewModel 应该优先考虑?

最佳答案

Html.TextBox 检查 ViewData/ViewBag首先是值,然后是 Model .确保需要 Model值,您必须使用 Html.TextBoxFor .

关于asp.net-mvc-3 - ASP.NET MVC 3 模型绑定(bind) - ViewBag.Title 与 id ="Title"的输入冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5103889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com