2014-06-11 22 views
1

在我看来,我用这种形式的方法:如何在MVC Url.Action的不同控制器中调用不同的方法?

<form method="get" action="@Url.Action("Index")"> 

所以,“指数”是方法控制器 - 用户A:

public ActionResult Index(SearchParameters parameters, UserModel userModel) 

我的问题是,如何在这同一视图中的新形式添加方法,我想在不同的控制器中调用动作,所以我会举例来说... action =“@ Url.Action(”Index2“)...其中Index2是ActionResult Index2 ...在Controller - UserB中。

感谢您的解释...

回答

3

Url.Action有一个overload,需要一个控制器名称作为第二个参数,所以你应该能够复制现有的代码并添加第二个参数:

<form method="get" action="@Url.Action("Index", "UserB")"> 

顺便说一句,你甚至可以简化代码进一步通过使用HtmlHelperBeginForm扩展方法,其具有same overload

@using (Html.BeginForm("Index")) { 
    // form fields here 
} 

@using (Html.BeginForm("Index", "UserB")) { 
    // form fields here 
} 

这会为您呈现<form>结构。

+0

啊,谢谢你:D – geekforfreek

+1

不客气!我还添加了关于如何渲染表单的建议 - 也有一些内置的辅助工具。 –

相关问题