这可能很简单,但我无法找到有关它的信息。
为什么我的开发环境中的隐藏表单字段中的div缺少aspnethidden CSS类而不是生产环境?它看起来像这样:
<div>
<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="..." />
<input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="..." />
</div>
而不是:
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="..." />
<input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="..." />
</div>
服务器和我的开发机器在.NET Framework 4.6.1上运行,IIS配置为在应用程序池中使用.NET CLR 4.0。
我只是想知道为什么我的Windows 10 Dev机器上缺少这个。
答案 0 :(得分:1)
您正在观察的是一个新功能。它是关于ASP.Net 4.0中的隐藏字段。
您可能可能知道ASP.Net使用隐藏字段作为状态控制机制。它用于保留Viewstate
和Control state
。
它们通常包含在div
元素中,<div></div>
。
我在 VS2010 和 .Net 3.5
中创建了一个示例asp.net应用程序当我看到我的观点来源时,我能够看到类似这样的内容
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/rxyklmnLTQ0NTA1Mstupvmjk8I5q9vNjFXLeK/1IBsUwBM=" />
</div>
当您在外部css文件中对div元素应用任何css规则时,那些适用于代码中所有div元素的规则将适用于围绕处理viewstate的隐藏字段元素的<div>
使用 Asp.net 4.0创建应用程序将使用CSS
附近的div
类进行呈现
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="..." />
</div>
根据我的研究,这里有一些将详细阐述的原因
<强>更新强>
在您的开发计算机中,您可能已设置
controlRenderingCompatibilityVersion="3.5"
因此,您无法在开发计算机中看到该类aspNetHidden
,因为该功能是在 Asp.net 4.0