asp.net-mvc-3 - ASP.NET MVC 3 解析简单的 html 标记/提取属性值

标签 asp.net-mvc-3

像这样解析 html 标签的最佳方法是什么:

<a href="/Results">Results</a>

我只需要提取一个 href 值。

我需要在 Controller 上执行此操作。

我知道我可以使用 linq to xml例如或 regex .

任何想法什么是这种情况下更好的方法?

可能有任何 MVC 助手准备好了?

基本上我需要做的是:

我有我的扩展方法女巫返回当前网址
public static string GetCurrentUrl(this ViewContext context)
        {
            string action = (string)context.Controller.ValueProvider.GetValue("action").RawValue;
            string controller = (string)context.Controller.ValueProvider.GetValue("controller").RawValue;

            if (action.ToLower() != "index")
                return String.Format("/{0}/{1}", controller, action);
            else if (action.ToLower() != "index" && controller.ToLower() != "home")
                return String.Format("/{0}", controller);
            else
                return "/";
        }

我需要将这个 url 与来自这样的 href 的值进行比较 <a href="{here cold be any link}">Results</a>

最佳答案

使用 XML 解析器并避免使用正则表达式。对于这个特定案例 XDocument似乎很容易:

var doc = XDocument.Parse("<a href=\"/Results\">Results</a>");
var href = doc.Element("a").Attribute("href").Value;

对于需要特定于 HTML 的解析和操作 DOM 的更复杂的场景,您可以使用 HTML Agility Pack .

关于asp.net-mvc-3 - ASP.NET MVC 3 解析简单的 html 标记/提取属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6002984/

相关文章:

c# - 可以知道 asp.net mvc 3 中的 OutputCache 大小吗?

asp.net - Dapper:从存储过程映射动态数据透视列

asp.net-mvc - 使用 Knockout.js (MVC Razor) 将复选框绑定(bind)到数组

asp.net-mvc - 具有嵌套 View 模型的自定义 ModelBinder

asp.net-mvc - azure 服务配置文件是否会覆盖 web.config 文件?

jquery - ASP.NET MVC 3 检查页面是否验证

asp.net-mvc - MVC 返回 Json 结果

asp.net-mvc - 如何禁用特定 Controller /操作的自动 ModelState 验证?

jquery - 使用 jquery 检测扫描仪输入

asp.net - 无法将 'ASP._Page__ViewStart_cshtml' 类型的对象转换为 'System.Web.WebPages.StartPage' 类型