相关疑难解决方法(0)

MVC控制器被调用两次

我有一个控制器,从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)

asp.net-mvc asp.net-mvc-2

33
推荐指数
2
解决办法
5万
查看次数

标签 统计

asp.net-mvc ×1

asp.net-mvc-2 ×1