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.
我使用的方法是否正确?或者还有其他方式吗?我想用按钮点击显示所有操作的结果.
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
| 归档时间: |
|
| 查看次数: |
13488 次 |
| 最近记录: |