我有一个控制器,从ActionLink调用中被调用两次.
我的主页有一个链接,点击时调用Play控制器上的Index方法.id为100传递给方法.我认为这是造成这个问题的原因.更多关于此的信息.
以下是一些代码段:
主页:
<%= Html.ActionLink("Click Me", "Index", "Play", new { id = 100 }, null) %>
Run Code Online (Sandbox Code Playgroud)
播放控制器:
public ActionResult Index(int? id)
{
var settings = new Dictionary<string, string>();
settings.Add("Id", id.ToString());
ViewData["InitParams"] = settings.ToInitParams();
return View();
}
Run Code Online (Sandbox Code Playgroud)
播放视图:
<%@ 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>
Run Code Online (Sandbox Code Playgroud)
如果我摆脱了Index方法的参数,一切都很好.如果我保留参数,则调用Index方法,并将100作为id.返回View后,第二次调用该方法,参数为null.
我似乎无法弄清楚是什么触发了第二次通话.
我的第一个想法是添加这样的特定路线:
routes.MapRoute(
"Play", // Route name
"Play/{id}", // URL with parameters
new {controller = "Play", action = "Index"} // Parameter defaults …Run Code Online (Sandbox Code Playgroud)