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

标签 c# asp.net-mvc linq mvvm view

问题是:

我正在使用文本框获取字符串 q 并想将其传递给 search 中的 3 个不同操作 Controller 。即 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);
  }

同样还有另外两个 Action 。

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

我的问题是:我尝试在单击文本框的“搜索”按钮 时,所有 3 个操作都应该运行并在某些 <div id="action1"> 中生成一个低于另一个的局部 View 标签。

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

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

我也尝试使用 ViewModel但问题是我无法将更大的模型与这些 mydata 一起传递给 View 在 LINQ 的 Action 中获得的数据种类。我不清楚在这种情况下如何使用 View 模型。

我使用的方法是否正确?还是可以有别的办法?我想通过单击按钮显示所有操作的结果。

最佳答案

MVC 框架中有两种类型的操作。第一个是主要操作,一次从浏览器调用它们。第二种称为 Child Actions这些 Action 不能从浏览器调用,而是从主要 Action 返回的 View 中调用。多个子 Action 可以在一个主 Action 下被调用。因此,您必须调查 child 行为是否有帮助。

例如

// 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");

...

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

关于c# - 如何在 ASP.NET MVC 的 View 中调用多个操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10915485/

相关文章:

c# - Linq order by 没有订购任何东西

c# - 在 DataGridView 组合框中设置默认值

javascript - 在 ASP mvc 中 FileResult 返回后触发 javascript

jquery - MVC4 Razor 中的 Dropdownlist SelectedItemChanged 事件?

linq - 错误 LINQ 表达式包含对与不同上下文关联的查询的引用

c# - 在页面之间导航期间显示 Progressring

c# - Visual Studio 2013 : Please tell me what's wrong VC#中可视化模拟按钮点击的方法

c# - .NET MVC 4 - foreach 循环中的按钮操作

c# - LINQ 查询跳过调试不执行下一行

LINQ 嵌套在哪里