我在具有ASP.NET MVC 5属性路由的控制器中有操作。

[RoutePrefix("ControllerName")]
public class MyController : Controller
{
    [Route("ActionName")]
    public ActionResult Index()
    {
        return View();
    }
}


当我尝试像这样操作网址时(Controller.Url)

Url.Action("Index", "My")


我懂了


  /我/索引


当我在View(WebViewPage.Url)中执行相同操作时,

@Url.Action("Index", "My")


我懂了


  / ControllerName / ActionName


如何获得/ ControllerName / ActionName的作用?

最佳答案

如果要从其他控制器构造URL,则需要像这样使用UrlHelper类:

var urlHelper = new UrlHelper(ControllerContext.RequestContext);
var url = urlHelper.Action("Index", "My");


这将构造您想要的结果:/ ControllerName / ActionName

10-07 16:10