从另一个控制器中查看操作

时间:2015-07-27 21:08:41

标签: asp.net-mvc asp.net-mvc-4 razor

在ASP MVC 4中,是否可以从视图中调用另一个控制器动作?

我在http://localhost:57456/Archers,我想从控制器Participe调用一个方法(所以应该是http://localhost:xxxxx/Participe/Action)。

这仅适用于此操作,因此我不想将每个操作重定向到此控制器。

2 个答案:

答案 0 :(得分:1)

您可以在视图中使用 Html.Action 来调用子操作

<div> @Html.Action("Action","Participate") </div>

答案 1 :(得分:0)

我建议你从第一个动作调用你的ParticipeController,并将控制器结果包含在视图Data或模型中以返回视图:

public class ArchersController {
    public ActionResult Index() {
        // your current code here

        // your custom call
        var result = new ParticipeController().Action("your params here");
        ViewData["ParticipeResult"] = result;

        // return View();
    }
}

也许,可以在此处应用一些责任原则,以便将您想要在此处制作的Participe调用隔离到其自己的类或方法中。