好的,我这里有一个奇怪的。我知道该值已正确传递给该属性,因为它工作正常:
@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/