TextBoxFor - 显示错误的值

时间:2011-08-31 00:15:17

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

好的,我在这里有一个奇怪的。我知道值正确地传递给属性,因为这很好:

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

现在,如果我这样做:

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

显示的值不正确。我完全不知道这个价值来自哪里。对于某些页面,它显示应该是的小写版本,有时则显示旁边的文本框的值。我很困惑。它是唯一能够做到这一点的文本框。我还在页面上有一个剃刀助手,它使用这个确切的值来显示页面的标题,并且显示正确。

我不介意使用@Html.TextBox()这个特定的,但我想深究这一点。

其他人有任何随意的事情发生吗?我在这个特定的页面上有很多控件,这是唯一一个这样的控件。

2 个答案:

答案 0 :(得分:9)

哦,jeez ......我刚刚找到了罪魁祸首。这是url路由值!洛尔

在我的全局文件中,我有{something}/{whatever}/{id}/{foo}{foo}是一个可选参数,只是为了让页面网址看起来更友好。

有趣的是,TextBoxFor中使用的表达式是从URL而不是viewmodel中提取的。我本以为它会在转到URL之前读取模型吗?甚至intellisense也从模型中拉出来。这是某种错误吗?

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

希望这种体验能够帮助他人。

答案 1 :(得分:0)

您可以在View中发布一些代码,以及模型吗?它可能与@Html.TextBoxFor()方法相反。