加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – ASP.NET MVC 3模型绑定 – 与输入id =“Title

发布时间:2020-12-16 06:58:23 所属栏目:asp.Net 来源:网络整理
导读:ViewBag动态属性似乎存在问题.让我们说: @{ ViewBag.Title = @Model.CourseName;} 然后在页面上我有一个表格: @Html.TextBox("Title",null,new {style="width:400px;"}) 其中Title是数据库表中字段的名称. 首次打开页面时,ID为“Title”的文本框将获取View
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应该优先考虑吗?

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读