Reputation: 4605
In my ASP.NET MVC 3, I am using this code
<a [email protected]("myController", "myaction")>
But when I click on it, it does't go to my action. Instead, in the URL I see this
http://localhost:1402/?Length=2
Am I missing something?
Thanks.
Edit :
Here are my routes :
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
);
}
Upvotes: 4
Views: 31347
Reputation: 1
For default action ( action that is not defined in route ), normal HTTP GET will automagically go to, you just need to use null action.
@Url.Action( null, "Customer" )
Upvotes: 0
Reputation: 6249
I've had same problem... My solution:
@Html.ActionLink("Link text", "myAction", "myController", new { id=item.ID }, null)
Just adding null to last parameter.
Upvotes: 1
Reputation: 31033
the first argument is interpretted as the Action
@url.Action("myaction","myController")
Upvotes: 11
Reputation: 6518
The signature of Url.Action is:
Url.Action(string actionName, string controllerName)
According to your code, the order of your parameters are incorrect, you should try:
@Url.Action("myAction", "myController")
Also remember that to remove the "Controller" part of the controller, for exemple, if I have a CustomerController with a Index action that would be like that:
@Url.Action("Index", "Customer")
Upvotes: 4