可以将包含@ Html.ActionLinks的<string>类型列表作为模型从Controller传递给View吗?

时间:2018-04-28 04:11:59

标签: asp.net-mvc-5

我有一个控制器,它从数据库构建Html,并将每个html序列作为字符串存储在字符串列表中。此字符串列表作为其模型传递给View。 Razor foreach循环在视图中输出Html,如下所示:

@{

    foreach (var Line in Model)
    {
        var myHTML = new HtmlString(@Line);
        @myHTML
    }

 }

该逻辑产生&lt;的有效超链接。 a href =“URL”&gt;转到网址&lt; / A&GT;键入Html命令。

我尝试使用此范例创建@ Html.ActionLinks,但Razor代码循环将@ Html.ActionLink解释为文本,而不是带有超链接的命令。有没有办法实现这个目标?

以下是用于测试的Index()Action:

    public ActionResult Index()
    {   
        List<string> HTMLList = new List<string>();
        string workURL;
        string work;
        workURL = "http://stackoverflow.com";
        work = "<a href=\"" + workURL + "\">" + "This will Work" + "</a>" ;

        HTMLList.Add(work);
        HTMLList.Add("<br/><br/>");

        work = "@Html.ActionLink(\"This Will Be Text not a hyperlink\",\"Display\",\"PDF\")";
        HTMLList.Add(work);
        //HTMLList.Add(work2.HtmlEncode());

        return View("Jay",HTMLList);
    }

以下是查看文件:

<!DOCTYPE html>
@{
ViewBag.Title = "Jay";
}

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Jay</title>
</head>
<body>
<div id="wrapper">
    <nav>
@{ 
    foreach (var Line in Model)
   {
       var myHTML = new HtmlString(@Line);
          @myHTML 
    }
}
    <br />
    </nav>
    </div>
</body>

</html>

0 个答案:

没有答案