我有一个在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
感谢。
答案 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”。此扩展程序再次调用该操作。 (我想要做验证)