Asp.net mvc 要在控制器中调用的html.actionlink的等效项?
我正在从控制器设置标题标签:Asp.net mvc 要在控制器中调用的html.actionlink的等效项?,asp.net-mvc,Asp.net Mvc,我正在从控制器设置标题标签: ViewData["H1"] = "Home > " + category + " > " + subcategory; 我想主页和分类成为URL,那么最好的方法是什么呢?你不应该这样做。您的问题是询问如何从控制器创建HTML。控制器不应创建HTML。这就是视图的用途。相反,将类别和子类别传递给视图,并在其中生成HTML: public ActionResult Foo() { ViewData["category"]
ViewData["H1"] = "Home > " + category + " > " + subcategory;
我想主页和分类成为URL,那么最好的方法是什么呢?你不应该这样做。您的问题是询问如何从控制器创建HTML。控制器不应创建HTML。这就是视图的用途。相反,将类别和子类别传递给视图,并在其中生成HTML:
public ActionResult Foo()
{
ViewData["category"] = "Foo";
ViewData["subcategory"] = "Bar";
return View();
}
<asp:Content ID="Content1" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
<h3>Home > <%=Html.ActionLink(ViewData["category"]) %>
> <%=Html.ActionLink(ViewData["subcategory"]) %></h3>
public ActionResult Foo()
{
ViewData[“类别”]=“Foo”;
ViewData[“子类别”]=“条形图”;
返回视图();
}
家
当然,您可以随意使用强类型模型而不是ViewData字典,但这应该会给您一个大致的概念
注意:我的原始答案如下。最初提出的问题(见后面的修订)与现在的问题完全不同。我保留原来的答案,因为我认为它有一些价值。
在我得到答案之前,如果我没有说这个例子在几个方面是错误的,那我就是失职了
public static class ViewHelpers
{
public static string Header(this HtmlHelper helper,
string category, string subcategory)
{
return string.Format("Home > {0} > {1}",
helper.ActionLink(category),
helper.ActionLink(subcategory);
}
}
<asp:Content ID="Content1" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
<%= Html.Header("foo", "bar") %>
<pages [...]>
[...]
<namespaces>
[...]
<add namespace="Your.Namespace.ContainingYourClass"/>
</namespaces>
</pages>
公共静态类查看帮助程序
{
公共静态字符串头(此HtmlHelper帮助程序,
字符串类别,字符串子类别)
{
返回string.Format(“Home>{0}>{1}”,
helper.ActionLink(类别),
helper.ActionLink(子类别);
}
}
[...]
[...]
您不应该这样做。您的问题是如何从控制器创建HTML。控制器不应该创建HTML。这就是视图的用途。相反,将类别和子类别传递给视图,并在其中生成HTML:
public ActionResult Foo()
{
ViewData["category"] = "Foo";
ViewData["subcategory"] = "Bar";
return View();
}
<asp:Content ID="Content1" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
<h3>Home > <%=Html.ActionLink(ViewData["category"]) %>
> <%=Html.ActionLink(ViewData["subcategory"]) %></h3>
public ActionResult Foo()
{
ViewData[“类别”]=“Foo”;
ViewData[“子类别”]=“条形图”;
返回视图();
}
家
当然,您可以随意使用强类型模型而不是ViewData字典,但这应该会给您一个大致的概念
注意:我的原始答案如下。最初提出的问题(见后面的修订)与现在的问题完全不同。我保留原始答案,因为我认为其中有一些价值。
在我得到答案之前,如果我没有说这个例子在几个方面是错误的,那我就是失职了
public static class ViewHelpers
{
public static string Header(this HtmlHelper helper,
string category, string subcategory)
{
return string.Format("Home > {0} > {1}",
helper.ActionLink(category),
helper.ActionLink(subcategory);
}
}
<asp:Content ID="Content1" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
<%= Html.Header("foo", "bar") %>
<pages [...]>
[...]
<namespaces>
[...]
<add namespace="Your.Namespace.ContainingYourClass"/>
</namespaces>
</pages>
公共静态类查看帮助程序
{
公共静态字符串头(此HtmlHelper帮助程序,
字符串类别,字符串子类别)
{
返回string.Format(“Home>{0}>{1}”,
helper.ActionLink(类别),
helper.ActionLink(子类别);
}
}
[...]
[...]
不,你不能从控制器调用ActionLink。如果你告诉我你想解决什么问题,也许我可以建议一种解决方法。啊。我看到你现在已经将问题更新为一个完全不同的问题。我想尝试一下。不,你不能从控制器调用ActionLink。如果你告诉我你想解决什么问题,也许我可以建议一种方法。啊。我看你现在把这个问题改成了一个完全不同的问题。我来试试看。