MVC 控制器被调用两次

2023-12-30

我有一个控制器从 ActionLink 调用中被调用两次。

我的主页有一个链接,单击该链接会调用 Play 控制器上的 Index 方法。 id 100 被传递到该方法中。我认为这就是导致问题的原因。下面详细介绍这一点。

以下是一些代码片段:

主页:

<%= Html.ActionLink("Click Me", "Index", "Play", new { id = 100 }, null) %>

播放控制器:

public ActionResult Index(int? id)
{
    var settings = new Dictionary<string, string>();
    settings.Add("Id", id.ToString());
    ViewData["InitParams"] = settings.ToInitParams();
    return View();
}

播放视图:

<%@ 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>

如果我去掉 Index 方法的参数,一切都很好。如果我将参数保留在原处,则将使用 100 作为 id 调用 Index 方法。返回View后,再次调用该方法,参数为null。

我似乎无法弄清楚是什么触发了第二个电话。

我的第一个想法是添加一条特定的路线,如下所示:

routes.MapRoute(
    "Play", // Route name
    "Play/{id}", // URL with parameters
    new {controller = "Play", action = "Index"} // Parameter defaults
);

除了创建一个看起来更漂亮的链接之外,这没有任何效果。

我不知道从这里该去哪里。


是否有任何其他标记可能会意外引用该页面?脚本引用、图像引用、CSS 引用,所有这些都可能被错误地指向“.”。或当前页面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC 控制器被调用两次 的相关文章

随机推荐