<label>在ASP.NET应用程序中使用标记的最佳方法是什么?我希望它是XHTML有效,可访问和可用.
我理解最佳方式是这样的:
<label for="Username">Username:</label>
<input type="text" id="Username" runat="server" />
Run Code Online (Sandbox Code Playgroud)
但是如果上面的代码在ASP.NET用户控件中,输入ID将会改变,这意味着标签的"for"属性是无用的.我可以将label标签设置为服务器控件,并在代码中设置它为"for"属性(Username.ClientID),但对于这么简单的事情来说似乎有很多工作要做.
我也看过过去使用过的HTML:
<label>
<span>Username</span>
<input type="text" id="Username" runat="server" />
</label>
Run Code Online (Sandbox Code Playgroud)
什么是最佳方法?
我目前正在开发一个ASP.NET MVC项目.
团队中的一些开发人员希望将自动生成的数据库实体直接绑定到视图.
其他开发人员希望创建量身定制的ViewModel并将其绑定到Views.
客观地说,这两种方法的优点和缺点是什么?
("数据库实体"我指的是ORM框架生成的自动生成的类,例如LINQ to SQL,Entity Framework或LLBLGen).
我有一个客户端要求XHTML有效的网站.他们使用W3C验证器进行检查.
我想添加自己的命名空间和属性,所以我可以这样做:
<div my:userid="123"> ... </div>
Run Code Online (Sandbox Code Playgroud)
据我所知,定义自定义命名空间是完全有效的XHTML,只要我这样做:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:my="http://www.example.com/my">
Run Code Online (Sandbox Code Playgroud)
但是,我的XHTML验证失败.问题似乎是验证器实际上没有出去检查我的自定义DTD文档以查找我的自定义命名空间,它只检查XHTML与已知的DTD.谁能够解释我如何解决这个问题呢?
我使用Http Handler动态生成XML/Google站点地图,因此我不需要手动维护XML文件.
我已将我的Http Handler映射到我的web.config中的"sitemap.xml",如下所示:
<httpHandlers>
<add verb="*" path="sitemap.xml" type="My.Name.Space, MyAssembly" />
</httpHandlers>
Run Code Online (Sandbox Code Playgroud)
它工作得很好.现在,www.mywebsite.com/sitemap.xml将我的Http Handler设置为动作并完全按照我的意愿行事.但是,这个URL会做同样的事情:www.mywebsite.com/some/folder/sitemap.xml我真的不想要那个,即我只是想将我的处理程序映射到我的应用程序的根目录.
我已经尝试将我的web.config中处理程序的"路径"更改为"/sitemap.xml"和"〜/ sitemap.xml",但都不起作用.
我在这里错过了什么吗?
我构建了一个快速程序,需要遍历一个巨大的日志文件(几百万条记录)并从内部找到各种各样的零碎.由于数据量如此巨大,我一直很想看看我的Windows任务管理器性能选项卡,看看有多少CPU和内存被使用.
程序成功获得结果后,CPU使用率明显下降.但是在看到我的内存使用率在执行期间缓慢上升到几千兆字节后,它保持不变.
我试图在我的函数结束时调用GC.Collect(),尝试将事物设置为null,尝试在发布模式下运行程序(我听说GC.Collect()可能无法正常工作,因为我希望它在调试中模式).
如果我关闭程序,内存使用量会下降,但我无法弄清楚为什么在应用程序生命周期内无法清理我的应用程序.在一天结束时,这是一个一次性的应用程序,但我只是想知道我错过了什么,即什么是持有所有这些记忆.
思考?
asp.net ×2
.net ×1
asp.net-mvc ×1
html ×1
httphandler ×1
label ×1
namespaces ×1
orm ×1
usability ×1
validation ×1
viewmodel ×1
web-config ×1
xhtml ×1