2

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

有一些像:

public string BrowseMenu
{
    return "<div><p>" + Html.ActionLink(" linktext ", "Action", "Controller") + "</p></div>";
}

我想要做的是将包含一些 ActionLinks 的相同 HTML 结构返回到 MVC 控制器中的一堆不同的视图页面,所以如果我以完全错误的方式进行操作,那就是我试图到达的地方。

4

1 回答 1

3

ActionResult如果你想渲染一些 html,你需要从你的控制器返回一个来查看。否则,视图将接收一个字符串并按原样显示它。

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

public PartialViewResult MyActionLink()
{
    return PartialView("_MyPartialView");
}

_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.MyActionLink()
于 2013-05-27T22:12:48.623 回答