c# - TextBoxFor - 显示错误值

标签 c# asp.net-mvc-3 razor

好的,我这里有一个奇怪的。我知道该值已正确传递给该属性,因为它工作正常:

@Html.TextBox("Foo", Model.Foo, new { @class = "bar" })

现在如果我这样做:

@Html.TextBoxFor(m => m.Foo, new { @class = "bar" })

它显示的值不正确。我完全不知道这个值是从哪里来的。对于某些页面,它显示应有的小写版本,其他时候,它显示旁边文本框的值。我很困惑。这是唯一执行此操作的文本框。我在页面上也有一个 Razor 助手,它使用这个精确值来显示页面的标题,并且显示正确。

我不介意对这个特定的对象使用 @Html.TextBox(),但我想深入了解一下。

还有其他人遇到过这样的随机事件吗?我在这个特定页面上有很多控件,这是唯一一个碰巧出现的控件。

最佳答案

天哪...我刚刚找到了罪魁祸首。就是url路由值!哈哈

在我的全局文件中,我有 {something}/{whatever}/{id}/{foo}{foo} 是一个可选参数,只是为了使页面 url 看起来人性化。

有趣的是,TextBoxFor 中使用的表达式是从 URL 而不是 View 模型中提取的。我本以为它会在访问 URL 之前先阅读模型?甚至智能感知也来自模型。这是某种错误吗?

self 注意:始终确保属性具有不同的名称!

希望这次经历能对其他人有所帮助。

关于c# - TextBoxFor - 显示错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7251241/

相关文章:

c# - 异步/等待迭代返回的 Task<IEnumerable<SomeClass>>

jquery - MVC 3 RC 2 - 检查模型状态以防止回发

c# - ASP.Net MVC : Localized texts with new line?

c# - 如何在 Razor 中单击按钮更改我的模型值?

jquery - 渐进式下载

c# - 将数据存储到数组中并检查它是否是一个有效的整数

c# - LINQ to SQL 基础题——表关系

asp.net-mvc-3 - 在 TFS 测试运行期间加载本地化的 resx 文件

javascript - 如何在 asp.net 中通过单击按钮来执行 C# 代码?

c# - 在没有云平台项目的情况下使用 Google Sheets API