gpt4 book ai didi

c# - 使用 html 内容创建链接

转载 作者:行者123 更新时间:2023-11-30 20:46:40 26 4
gpt4 key购买 nike

我想创建一些 HTML 辅助函数来创建一些带有生成的 HTML 内容的链接。我会尽可能地遵循默认的 API。当我想传入一个 routevalues 对象时,这会变得很棘手。 RouteValueDictionary 类型的路由值对象(故意?)在 MVC 中创建起来很麻烦。我想传入一个 object routevalues,就像 Html.ActionLink 所做的那样。棘手的部分是我似乎需要 UrlHelper.CreateUrl,它需要一个 RouteValueDictionary。我检查了 ActionLink 在内部是如何做到这一点的,它使用了 TypeHelper.ObjectToDictionaryTypeHelper 然而是一个内部类,所以我无法访问它。我可以复制粘贴东西,但是-除此之外,如果我这样做并且不在 Apache 2.0 许可或兼容下获得许可,首先我会违反许可,其次复制粘贴编程给了我 heeby-吉比。

以下是我大概想做的事情:

public static MvcHtmlString MyFancyActionLink(this HtmlHelper helper,
Foo foo,
object routevalues){
TagBuilder inner = fancyFooContent(foo);
RouteValueDictionary routedict = TypeHelper.ObjectToDictionary(routevalues);
//alas! TypeHelper is internal!
string url = UrlHelper.GenerateUrl(null,
"myaction",
"mycontroller",
routedict,
helper.ViewContext.RequestContext,
true);
TagBuilder link = new TagBuilder("a");
link.MergeAttribute("href", url);
link.InnerHtml = inner.toString();
return MvcHtmlString.Create(link.ToString());
}

最佳答案

RouteValueDictionary 有一个 constructor它接受一个对象并使用它的属性来填充字典。除非我在这里遗漏了一些明显的东西,否则你应该能够使用它:

RouteValueDictionary routedict = new RouteValueDictionary(routevalues);

关于c# - 使用 html 内容创建链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26586836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com