Asp.net mvc MVC控制器方法在Html中返回@Html.ActionLink的语法是什么?

Asp.net mvc MVC控制器方法在Html中返回@Html.ActionLink的语法是什么?,asp.net-mvc,actionlink,razor-2,Asp.net Mvc,Actionlink,Razor 2,可能是重复的,但不知道如何在MVC View.cs文件中编写一个方法,该文件可调用以返回cshtml文件中的@Html.ActionLink 有点像: public string BrowseMenu { return "<div><p>" + Html.ActionLink(" linktext ", "Action", "Controller") + "</p></div>"; } 公共字符串浏览 { 返回“”+Html.Action

可能是重复的,但不知道如何在MVC View.cs文件中编写一个方法,该文件可调用以返回cshtml文件中的@Html.ActionLink

有点像:

public string BrowseMenu
{
    return "<div><p>" + Html.ActionLink(" linktext ", "Action", "Controller") + "</p></div>";
}
公共字符串浏览
{
返回“”+Html.ActionLink(“linktext”、“Action”、“Controller”)+”

”; }

我想做的是将相同的HTML结构和一些ActionLink返回到MVC控制器中的一组不同的视图页面,因此如果我完全错误地进行了操作,那就是我试图达到的目的。

如果要呈现一些HTML,您需要从控制器返回一个
ActionResult
。否则,视图将接收一个字符串并按原样显示

您可以定义一个包含html的局部视图,并且可以在主视图中呈现该局部视图

public PartialViewResult MyActionLink()
{
    return PartialView("_MyPartialView");
}
\u MyPartialView
只是一个视图文件,其中包含要呈现的html


然而,我建议编写一个自定义html助手,我相信这是一个更干净的解决方案

public static string MyActionLink(this HtmlHelper helper)
{
    StringBuilder sb = new StringBuilder();
    sb.Append("<div><p>"); 
    sb.Append(helper.ActionLink("Text","Action","Controller"));
    sb.Append("</p></div>")
    return sb.ToString();
}

您建议的自定义html帮助程序肯定比我一直尝试的要好,无法从MVC视图中获取可访问性方法的代码,尽管只需创建一个新类并将此方法添加到其中。你可以在这里找到一个例子。VS2012魔术!不确定我没有完全正确的内容,可能是类名或命名空间。非常感谢!请注意,msdn HtmlHelper类页面的备注部分提到HtmlHelper不适合在[MVC]控制器或模型中使用,这应该是有意义的
@Html.MyActionLink()