如何在ASP.NET MVC中调用View中的多个操作?

Man*_*lue 1 c# linq asp.net-mvc view mvvm

问题是:

我正在使用文本框来获取字符串q并希望将其传递给search控制器中的3个不同的操作.即action1(string q), action2(string q)等等

现在我的行​​动语法:

 public ActionResult action1(string q)
  {
   var mydata = from p in fab //LINQ logic
                select new action1class
                { data1=p //assignment };
   return View("_partialAction1", mydata);
  }
Run Code Online (Sandbox Code Playgroud)

同样,还有另外两个行动.

我正在使用3种不同的操作,因为我的LINQ逻辑从3个不同的源获取数据,因此mydata需要创建不同的数据.

我的问题是:当我点击文本框的"搜索"按钮时,我正在尝试,然后所有3个动作都应该运行,并在某些<div id="action1">标签中生成一个低于其他的部分视图.

我尝试使用,ajax.BeginForm但它一次只能调用一个动作

@using (Ajax.BeginForm("action1", "Search", new AjaxOptions
{
    HttpMethod = "GET",
    InsertionMode = InsertionMode.Replace,
    UpdateTargetId = "action1",
    LoadingElementId="progress"
}))
Run Code Online (Sandbox Code Playgroud)

我也尝试使用ViewModel但问题是我无法将更大的模型传递给视图以及mydata在LINQ中获得的这些数据.在这种情况下,我不清楚如何使用viewmodel.

我使用的方法是否正确?或者还有其他方式吗?我想用按钮点击显示所有操作的结果.

VJA*_*JAI 6

MVC框架中有两种类型的操作.第一个是主要操作,它们一次从浏览器调用.第二种类型称为子操作,这些操作不能从浏览器调用,而是从主操作返回的视图调用.可以在主动作下调用多个动作.因此,您必须研究儿童行为是否有帮助.

防爆.

// main action that returns a view
public ViewResult Index()
{
   var model = ...
   return View(model);
}

// couple of child actions each returns a partial view
// which will be called from the index view
[ChildActionOnly]
public PartialViewResult ChildAction1()
{
  var model = ...
  return PartialView(model);
}

[ChildActionOnly]
public PartialViewResult ChildAction2()
{
  var model = ...
  return PartialView(model);
}

// index view
Index.cshtml
@model ...

@Html.Action("ChildAction1");
@Html.Action("ChildAction2");

...
Run Code Online (Sandbox Code Playgroud)

http://msdn.microsoft.com/en-us/library/ee839451.aspx