作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要从 LiteralControl
中读取 href 并向其添加一些属性:
标记;
<a id="aMyAnchor" runat="server" href="bob.com">click me</a>
这是我尝试过的:
string url= "bob.com";
var myAnchor = divLinkContainer.Controls
.Cast<LiteralControl>()
.Where(a => a.Attributes["href"]
.Contains(url)).First();
但是,LiteralControl
没有 attributes 属性...
注意:我知道我可以通过它的 id 直接访问链接,但这只是因为我使示例代码变得简单。
编辑:
这个:
string url= "bob.com";
var myAnchor = divLinkContainer.Controls
.Cast<HtmlAnchor>()
.Where(a => a.HRef
.Contains(url)).First();
结果:
Unable to cast object of type 'System.Web.UI.LiteralControl' to type 'System.Web.UI.HtmlControls.HtmlAnchor'.
最佳答案
您的 divLinkContainer
节点可能包含其他无法转换为 HtmlAnchor
类型的节点。要仅选择 HtmlAnchor
类型的节点,请使用 Enumerable.OfType
:
var myAnchor = divLinkContainer.Controls
.OfType<HtmlAnchor>()
.Where(a => a.HRef.Contains(url))
.First();
关于c# - 如何从 LiteralControl 获取 href?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9488993/
我是一名优秀的程序员,十分优秀!