【发布时间】:2012-06-06 13:45:31
【问题描述】:
问题是:
我正在使用文本框获取字符串 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);
}
同样还有另外两个动作。
我正在使用 3 种不同的操作,因为我的 LINQ 逻辑从 3 个不同的来源获取数据,因此需要创建不同的 mydata。
我的问题是:我正在尝试当我单击文本框的 'search' 按钮 时,所有 3 个操作都应该运行并在某些 <div id="action1"> 标签中生成一个低于其他操作的部分视图。
我尝试使用ajax.BeginForm,但它一次只能调用一个操作
@using (Ajax.BeginForm("action1", "Search", new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "action1",
LoadingElementId="progress"
}))
我也尝试使用ViewModel,但问题是我无法将更大的模型与这些mydata 类型的数据一起传递给视图,这些数据在LINQ 中获得。在这种情况下,我不清楚如何使用视图模型。
我使用的方法是否正确?或者还有其他方法吗?我想通过单击按钮显示所有操作的结果。
【问题讨论】:
-
你为什么要把它分成 3 个动作?
-
我建议您再看看使用 AJAX。 AJAX 将允许 IIS 异步处理操作(请求),从而加快响应时间。你能发布你的 AJAX 代码吗?
-
@DanielA.White 使用 3 个不同的操作,因为我的 LINQ 逻辑从 3 个不同的来源获取数据,因此需要创建 3 个不同的“mydata”。
-
@joshuam : 刚刚更新了 ajax 代码
标签: c# asp.net-mvc linq mvvm view