我在MVC 4中使用Razor。我正在尝试将区域中的视图中的URL设置为另一个区域中的控制器操作。以下命令返回一个空字符串:
@Url.Action("Action", "MyController", new { area = "OtherArea" })
我已经使用其他选项进行了一些测试,以下内容返回了一个网址,但这是错误的:
@Url.Action("Action", "MyController", new { parameter = 1 })
生成的URL是/ App / IncorrectArea / My / Action?参数= 1。注意不正确的区域; Url.Action假设(因为我没有通过某个区域)控制器位于当前区域,而不是它!
有什么想法吗?
答案 0 :(得分:11)
找到我的问题。我更改了区域名称,但未能更新区域注册中的AreaName属性。
答案 1 :(得分:1)
我遇到了同样的问题,因为我将RegisterRoutes
方法从{controller}/{action}/{id}
更改为{action}/{id}
只是为了从URL发出控制器名称