У меня есть контроллер с именем Pedidos , внутри есть 2 метода:
public ActionResult Create(string id)
{
//...
}
public ActionResult CreateEAN(string id)
{
//...
}
Когда я вызываю каждый метод из javascript (изнутри каждого соответствующего представления), всегда вызывается тот же метод, тот, который первый в конфигурации Route, в данном случае это CreateEAN это конфигурация Route:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Sesion", action = "Identificacion" }
);
routes.MapRoute(
"Pedidos1",
"{Pedidos}/{CreateEAN}/{id}",
new
{
controller = "Pedidos",
action = "CreateEAN",
id = UrlParameter.Optional
});
routes.MapRoute(
"Pedidos2",
"{Pedidos}/{Create}/{id}",
new
{
controller = "Pedidos",
action = "Create",
id = UrlParameter.Optional
});
}
Вот как я вызываю этот метод из Javascript:
1)
<script type="text/javascript">
function CambioDeposito()
{
var sid = $("#ddlDeposito").val();
window.location.href = '@Url.Action("CreateEAN", "Pedidos")' + '/' + sid;
}
</script>
2)
<script type="text/javascript">
function CambioDeposito()
{
var sid = $("#ddlDeposito").val();
window.location.href = '@Url.Action("Create", "Pedidos")' + '/' + sid;
}
</script>
Если я изменю порядок в конфигурации маршрута, тогда Создать будет одним это всегда называется. Я понимаю, что они похожи, но эти 2 действия имеют разные названия! почему маршрутизация терпит неудачу, как это? Как я могу это исправить, чтобы в каждом случае вызывался правильный метод?
Спасибо !!