我一直试图调试一个问题而且我把它指向了这个场景:
当语句Html.TextBox(" ID","哎呀...")被执行时,我希望它呈现:
<input id="ID" name="ID" type="text" value="What the heck.." />
但我得到一个Guid作为TextBox值,如:
<input id="ID" name="ID" type="text" value="2e369d2c-071d-4733-8382-cc9e77d0b912" />
为什么Asp.net MVC输出Guids?我没有重写asp.net mvc的框架方法。请参阅屏幕截图。
更新 这是使用Html.Hidden()而不是Html.TextBox()的另一个屏幕截图。我无法直接在Watch窗口中使用Html.HiddenFor(),因为HiddenFor()使用lambdas。
答案 0 :(得分:2)
也许您有一个名为ID
的POST变量GUID?如果是这种情况,HTML Helper方法将使用该POST值。如果没有POST值,它将回退到模型中的值。
答案 1 :(得分:1)
您是正确的,Html.TextBox("ID", "What the heck..")
应该输出您在第一个示例中提供的属性值;但是,如果您使用Html.TextboxFor
方法,那么您正在使用MVC Helper来动态加载ID
属性的值并将其放入{{1 HTML中的属性。当您使用value
方法时,如果您的Html.TextboxFor
属性是Guid,则第二个示例是预期的HTML输出。