我正在尝试从锚标记
调用操作结果我正在将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#
答案 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;