Asp.net mvc 3 在Razor/MVC3中使用@Html.ActionLink获取原始文本?

Asp.net mvc 3 在Razor/MVC3中使用@Html.ActionLink获取原始文本?,asp.net-mvc-3,formatting,razor,Asp.net Mvc 3,Formatting,Razor,给定以下Html.ActionLink: @Html.ActionLink(Model.dsResults.Tables[0].Rows[i]["title"].ToString(), "ItemLinkClick", new { itemListID = @Model.dsResults.Tables[0].Rows[i]["ItemListID"], itemPosNum = i+1 }, ... 模型中的数据在标题字段中包含HTML。但是,我无法显示HTML编码的值。例如,带下划

给定以下Html.ActionLink:

@Html.ActionLink(Model.dsResults.Tables[0].Rows[i]["title"].ToString(), "ItemLinkClick",
    new { itemListID = @Model.dsResults.Tables[0].Rows[i]["ItemListID"], itemPosNum = i+1 }, ...
模型中的数据在标题字段中包含HTML。但是,我无法显示HTML编码的值。例如,带下划线的文本显示时,其周围有

我在ActionLink的文本部分尝试了Html.Raw,但没有成功


有什么建议吗?

MVCHtmlString.Create
应该可以做到这一点。

使用下面的actionlink,您不需要在模型中传递html。让css类或内联样式决定如何修饰href

@Html.ActionLink(Model.dsResults.Tables[0].Rows[i]["title"], "ItemLinkClick", "Controller", new { @class = "underline", style="text-decoration: underline" }, null)

这些是你应该走另一条路的情况

@{
    string title = Model.dsResults.Tables[0].Rows[i]["title"].ToString(),
           aHref = String.Format("/ItemLinkClick/itemListID={0}&itemPosNum={1}...", 
                       Model.dsResults.Tables[0].Rows[i]["ItemListID"],
                       i+1);
}

<a href="@aHref" class="whatever">@Html.Raw(title)</a>
@{
字符串title=Model.dsResults.Tables[0]。行[i][“title”]。ToString(),
aHref=String.Format(“/ItemLinkClick/itemListID={0}&itemPosNum={1}…”,
Model.dsResults.Tables[0]。行[i][“ItemListID”],
i+1);
}

请记住,Razor helpers可以帮助您,但您仍然可以用HTML的方式进行操作。

如果您仍然希望使用帮助器为链接文本创建带有原始HTML的操作链接,那么我不相信您可以使用
HTML.ActionLink
。但是,的答案描述了如何创建一个帮助器来执行此操作

不过,我会手动编写链接HTML,并使用
Url.Action
helper创建Url,而
HTML.ActionLink
将创建:

<a href="@Url.Action("ItemLinkClick", new { itemListID = @Model.dsResults.Tables[0].Rows[i]["ItemListID"], itemPosNum = i+1 })">
    @Html.Raw(Model.dsResults.Tables[0].Rows[i]["title"].ToString())
</a>

您也可以使用:

<a class='btn btn-link' 
   href='/Mycontroler/MyAction/" + item.ID + "'
   data-ajax='true' 
   data-ajax-method='Get' 
   data-ajax-mode='InsertionMode.Replace' 
   data-ajax-update='#Mymodal'>My Comments</a>


为什么要将html放在模型中而不是视图中?如果需要加下划线,请为此添加样式或类属性。从模型返回的数据是基于关键字格式化的。因此,在这个级别上需要格式化。装饰不是整个字符串,只是其中的一部分,所以我认为这不行。非常好的答案+1。我在网上寻找一个基于非助手的解决方案,但我得到的都是基于助手的解决方案。你让我开心!干杯:)