在我的ASP.NET MVC 3中,我正在使用此代码
<a href=@url.Action("myController", "myaction")>
但是当我点击它时,它不会进入我的行动。相反,在URL中我看到了这个
http://localhost:1402/?Length=2
我错过了什么吗?
感谢。
编辑:
以下是我的路线:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
答案 0 :(得分:8)
第一个参数被解释为Action
@url.Action("myaction","myController")
答案 1 :(得分:3)
Url.Action的签名是:
Url.Action(string actionName, string controllerName)
根据您的代码,您的参数顺序不正确,您应该尝试:
@Url.Action("myAction", "myController")
还要记住要删除控制器的“Controller”部分,例如,如果我有一个带有Index操作的CustomerController,那就是:
@Url.Action("Index", "Customer")
答案 2 :(得分:1)
我遇到了同样的问题...... 我的解决方案:
@Html.ActionLink("Link text", "myAction", "myController", new { id=item.ID }, null)
只需将null添加到上一个参数。
答案 3 :(得分:0)
对于默认操作(未在路由中定义的操作),正常的HTTP GET将自动转到,您只需要使用 null 操作。
@ Url.Action(null,“Customer”)