虽然@ Html.Actionlink()助手非常方便在.cshtml文件中构建<a>
元素,但是可以在C#字符串中构造它们,以便随后在HTML输出中正确渲染它们?如何在C#文本字符串中包含@Html.Actionlink?
例如,如果我给你一个字符串变量类似于以下值:
Book.ReadMore = "Click @Html.ActionLink(\"this link\", \"About\", \"Home\") to read more.";
然后我试图通过我的.cshtml页面来显示它(字面文字加链接),使用代码类似于:
<p>@Model.ReadMore</p>
所有我在浏览器中得到的是整个字符串完全按照我键入它,包括@Html ...等:
Click @Html.ActionLink("this link", "About", "Home") to read more.
现在,对于正确的SoC,我知道在C#代码中包含HTML东西并不是最好的做法,但是在这种情况下是否有可能获得适当的链接,而不是字符串本身?
编辑:更多信息 - 该字符串只是约20-30个字符串集合中的一个项目(在视图中使用for loop
显示)。只有少数这些项目需要链接(在每种情况下都不相同)。因为,如上所述,我同意在模型代码中使用Razor/HTML显然不是一个好习惯,我试图获得一个简单的方法(如果可能的话),这将使我可以灵活地在右侧的某处建立链接放置,同时仍然产生MVC SoC的可维护性。
必须有一个“正确”的方式来做到这一点,这是简单但可维护的。
[如何使用MVC 3 @ Html.ActionLink里面的C#代码](http:// stackoverflow。com/questions/8331041/how-to-use-mvc-3-html-actionlink-inside -c-sharp-code) –
上面的最高票数(不被接受)答案似乎有你在找什么 –