如何从视图页面C#中的字符串中删除html标签

时间:2018-10-27 11:25:05

标签: c# .net asp.net-mvc model-view-controller

如何从C#列表页面中的字符串中删除html标签 我已经尝试过Regex.Replace(inputHTML, @"<[^>]+>|&nbsp;", "").Trim();,但这在html view页面中不起作用,可能是这仅在controller中起作用。

这是我的动作:

public ActionResult Index()
        {
            string AuthRole = "1,2,3";
            ApplicationUser chkuser = common.CheckIsAuthorize(AuthRole);
            if (chkuser != null)
            {
                var data = db.Page.ToList();
                return View(data);
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
        }

这是我的观点:

foreach (var item in Model)
{
<tr>
    <td>@i</td>
    <td>@item.Title</td>
    <td>@item.Message</td>
    <td>
        @Html.ActionLink("Edit", "Edit", new { id = item.Id })
    </td>
</tr>
i++;
}

我的列表如下:

enter image description here

2 个答案:

答案 0 :(得分:5)

如果您想不带任何格式显示内容,则可以使用此Regex.Replace(input, "<.*?>", String.Empty)从字符串中剥离所有HTML标签。

1)将以下代码添加到视图顶部(.cshtml)。

@using System.Text.RegularExpressions;

@helper StripHTML(string input)
{
    if (!string.IsNullOrEmpty(input))
    {
        input = Regex.Replace(input, "<.*?>", String.Empty);
        <span>@input</span>
    }
}

2)使用上面的辅助功能,例如

<td>@StripHTML(item.Message)</td>

答案 1 :(得分:0)

替换

<td>@item.Message</td>

<td>@Html.Raw(item.Message)</td>

这可以帮助您在razor视图中显示html