Asp.net mvc 如何在MVC中返回多个视图

Asp.net mvc 如何在MVC中返回多个视图,asp.net-mvc,partial-views,Asp.net Mvc,Partial Views,我只是想知道我是否有一个有两个局部视图的视图。单个控制器如何返回多个视图 e、 g。 我有一个带有搜索按钮的搜索页面。 您必须选择按组织或服务进行搜索。 我已经创建了两个局部视图来显示结果,因为它们的组成不同 这些局部视图显示在主搜索视图上 Html.Partial("_OrgResult") // partialview of results Html.Partial("_ServiceResult") // partialview of results 我有一个这样的控制器 [H

我只是想知道我是否有一个有两个局部视图的视图。单个控制器如何返回多个视图

e、 g。 我有一个带有搜索按钮的搜索页面。 您必须选择按组织或服务进行搜索。 我已经创建了两个局部视图来显示结果,因为它们的组成不同

这些局部视图显示在主搜索视图上

Html.Partial("_OrgResult") // partialview of results 
Html.Partial("_ServiceResult") // partialview of results
我有一个这样的控制器

    [HttpPost]
    public ActionResult GetResults(int SearchType = 0, string SeartchTxt = "")
    {

        if (SearchType < 2)
        {
            return PartialView("~/Views/Search/_OrgResult.cshtml", GetOrganisationResults(SearchType, SeartchTxt));
        }
        else
        {
            return PartialView("~/Views/Search/_ServicehResult.cshtml", GetServiceResults(SearchType, SeartchTxt));
        }

    }
[HttpPost]
public ActionResult GetResults(int SearchType=0,字符串SeartchTxt=”“)
{
如果(搜索类型<2)
{
返回PartialView(“~/Views/Search/_orgfresult.cshtml”,getOrganizationResults(SearchType,SeartchTxt));
}
其他的
{
返回PartialView(“~/Views/Search/_ServicehResult.cshtml”,getservicesults(SearchType,SeartchTxt));
}
}
这是正确的方法吗?
它会起作用吗?

最好的方法是在视图中有一个
HTML.partial
行:

Html.Partial("Result") // partialview of results 
然后,在控制器中,返回与参数对应的视图:

[HttpGet]
public ActionResult Results(int SearchType = 0, string SeartchTxt = "")
{

    if (SearchType < 2)
    {
        return PartialView("~/Views/Search/_OrgResult.cshtml", GetOrganisationResults(SearchType, SeartchTxt));
    }
    else
    {
        return PartialView("~/Views/Search/_ServicehResult.cshtml", GetServiceResults(SearchType, SeartchTxt));
    }

}
[HttpGet]
public ActionResult结果(int SearchType=0,字符串SeartchTxt=”“)
{
如果(搜索类型<2)
{
返回PartialView(“~/Views/Search/_orgfresult.cshtml”,getOrganizationResults(SearchType,SeartchTxt));
}
其他的
{
返回PartialView(“~/Views/Search/_ServicehResult.cshtml”,getservicesults(SearchType,SeartchTxt));
}
}

您试过了吗?没有理由不这样做。但是更好的方法(更好的性能)是使用jquery/ajax根据用户选择的选项调用不同的控制器方法,并只更新现有页面。我甚至没有考虑拆分控制器的方法。但是视图是否是做出决策的正确位置?决策是指用户选择在视图中必须执行的选项。无论您是通过提交表单将决策结果发布到单个方法,还是通过jquery/ajax发布到不同的方法,都是无关紧要的。是否应该查看
Html.Action(“结果”)
。因此HTML.Partial(“Result”)将插入_OrgResult.cshtml部分视图或_serviceResult部分视图。在要呈现的部分视图名称和主视图中用作标识符的名称之间不需要有链接?Html.partial(“结果”)是的,这不起作用。它在寻找_Result.cshtml,我有两个局部视图,分别称为_OrgResult.cshtml和_ServiceResult.cshtml,它应该在这里寻找,正如simoco所说,如果您尝试HTML.Action(“Results”)?您还需要传递参数