ASP.NET MVC - 双动作执行

时间:2011-02-27 14:10:30

标签: asp.net asp.net-mvc-2

我有一个在ASP.NET MVC 2上运行的网站 - 在一个动作上我运行了一些代码,然后返回另一个视图而不是动作的名称。即 - action1将返回视图“view2”。

不知何故,action1运行一次,然后调用

return View("view2",model)

再次跑步,第二次。

为什么会这样?它可以修复吗?

编辑:添加了一些代码

动作:

public ActionResult View1(int id, int id2) {
// some code ...
return View("View2", u);
}

其中View2与View1或动作(只需显示)无关。

路线:

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


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

链接:

http://<some server>/View1/15/fb

感谢。

2 个答案:

答案 0 :(得分:0)

将默认路线放在底部。路线从上到下进行评估,所以......

http://<some server>/View1/15/fb

...由默认路由评估为Controller = Main,Action = View1

答案 1 :(得分:0)

我遇到了和你一样的问题。

他们有可能产生这种双重行动。你有一些有用的链接:

MVC controller is being called twice

ASP.NET MVC Action is Called Twice

在我的案例中是chrome的扩展名为“HTML Validator 1.3.3”。此扩展程序再次调用该操作。 (我想要做验证)