Asp.net mvc 控制器操作的路径

Asp.net mvc 控制器操作的路径,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,在视图中使用Html.ActionLink以获得控制器操作的正确路径没有问题。我只是想知道在其他层(例如控制器)中是否也可以这样做。我之所以问这个问题,是因为我通过一些数据访问递归地生成一个,以呈现一个“链接树结构”。谢谢 Christian在控制器中,您可以使用UrlHelper创建url string html = string.Empty; UrlHelper url = new UrlHelper(HttpContext.Request.RequestContext); string e

在视图中使用Html.ActionLink以获得控制器操作的正确路径没有问题。我只是想知道在其他层(例如控制器)中是否也可以这样做。我之所以问这个问题,是因为我通过一些数据访问递归地生成一个
,以呈现一个“链接树结构”。谢谢


Christian

在控制器中,您可以使用UrlHelper创建url

string html = string.Empty;
UrlHelper url = new UrlHelper(HttpContext.Request.RequestContext);
string edit = url.Action(Constants.action_Edit, Constants.ctrl_myController, new { someId });
html += "<a href=\"" + edit + "\">Edit</a> ";
string html=string.Empty;
UrlHelper url=新的UrlHelper(HttpContext.Request.RequestContext);
string edit=url.Action(Constants.Action\u edit,Constants.ctrl\u myController,new{someId});
html+=“”;
这将创建一个包含html链接的字符串。在本例中,我使用常量来给出正确的操作和控制器,但它当然可以是“普通”字符串


如果您需要更多场景,请告诉我

谢谢,我会试试这个。我只是好奇为什么你要使用string html=string.Empty而不是string html=“”,这是更好的做法吗?@csetzkorn Jeff有一篇关于这个主题的非常好的文章@csetzkorn,使用这个主题似乎会提高性能,但我认为最重要的是,无论你使用什么(“,own constant,string.Empty等等),与同事一起在项目中始终使用它。阅读具有一致编程风格的代码更令人愉快