Tengo un controlador que está siendo llamado dos veces desde una llamada de ActionLink.Se está llamando al controlador MVC dos veces
Mi página de inicio tiene un enlace, que cuando se hace clic llama al método Index en el controlador Play. Se pasa una identificación de 100 al método. Creo que esto es lo que está causando el problema. Más sobre esto a continuación.
Éstos son algunos fragmentos de código:
Principal:
<%= Html.ActionLink(“Click Me”, "Index", "Play", new { id = 100 }, null) %>
Juego de control:
public ActionResult Index(int? id)
{
var settings = new Dictionary<string, string>();
settings.Add("Id", id.ToString());
ViewData["InitParams"] = settings.ToInitParams();
return View();
}
juegue Ver:
<%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage" %>
(html <head> omitted for brevity)
<body>
<form id="form1" runat="server" style="height:100%">
Hello
</form>
</body>
Si me deshago de la parámetro para el Index me thod, todo está bien. Si dejo el parámetro en su lugar, se llama al método Index con 100 como id. Después de devolver la Vista, el método se llama por segunda vez con un parámetro de nulo.
Parece que no puedo averiguar qué está desencadenando la segunda llamada.
Mi primer pensamiento fue para agregar una ruta específica de esta manera:
routes.MapRoute(
"Play", // Route name
"Play/{id}", // URL with parameters
new {controller = "Play", action = "Index"} // Parameter defaults
);
Esto tuvo otro efecto que hacer un enlace mirando más bonita.
No estoy seguro de dónde ir desde aquí.
Gracias de antemano.
Rick
¿Puedes registrar Firebug si la URL se solicita dos veces? –