使用Href属性重定向到操作结果

时间:2017-11-20 08:11:09

标签: c# html asp.net-mvc

我正在尝试从锚标记

调用操作结果

我正在将html构建到C#中,它不在视图中并使用html helper @Html.Raw(Model.HTML)将其注入视图中。

HTML

html.AppendLine("<td><a href='Home/DeleteFile?ID="+ dt.Rows[i]["ID"].ToString() + "'><i style='color:#e90029' class='fa fa-times fa-lg' aria-hidden='true'></i></a></td>");

问题是我第一次点击这个锚标签,通过调用地址

删除它的工作记录
http://WebsiteAlias/Home/DeleteFile?ID=2

但之后,当我将鼠标悬停在另一条记录中删除它时,它会显示

的网址
http://WebsiteAlias/Home/Home/DeleteFile?ID=2

在网址中添加Another / Home,

为什么会这样?

我无法使用@Url.Action("Action","Controller")因为HTML来自c#

1 个答案:

答案 0 :(得分:2)

如果构建HTML的C#代码可以访问HttpContext,您可以像这样创建一个UrlHelper:

using System.Web;

var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
string url = urlHelper.Action("DeleteFile", "Home", new { ID = dt.Rows[i]["ID"].ToString() });
return url;

修改:如果您只能访问HttpContextBase,则可以获得当前的HttpContext

HttpContextBase contextBase;
HttpContext httpContext = contextBase.ApplicationInstance.Context;