【发布时间】:2017-05-31 04:30:21
【问题描述】:
我想在我的应用程序中有一个返回搜索结果的表。我有两个 UI 组件可以帮助实现这一点。一是作为搜索字符串的文本输入,二是通过下拉菜单进行搜索,最终确定要查询的数据库表。
我的控制器设置为 HttpGet 以接受参数 searchBy 和 searchString 如果 search by 是“option1”那么它会查询“table 1”如果 searchBy 是“option2”它会查询“Table2”。然后我想在不刷新的情况下将部分视图返回到主视图。我目前有这个设置,我有两个不同的模型和两个不同的局部视图,它们分别相互配合。计划是使用 AJAX 向控制器操作发送带有适当参数的“GET”。
如何在主视图中使用 razor 语法,以便它可以处理返回的任一局部视图?
控制器
[HttpGet]
public async Task<ActionResult> Table(string searchBy, string searchString)
{
switch (searchBy)
{
case "Option 1":
List<model1> Model1 = new List<model1>();
var blah = from a in db.Table1 a;
blah = blah.Where(a => a.propA.Contains(searchString)
|| a.propB.Contains(searchString));
foreach (var a in blah)
{
Model1.Add(new model1 {...... });
}
return PartialView("_PartialView1", Model1);
case "Option2":
List<model2> Model2 = new List<model2>();
var foo = from p in db.Table2 select p;
foo = foo.Where(p => p.propC.Contains(searchString)
|| p.propD.Contains(searchString)
|| p.propE.Contains(searchString)
foreach (var p in foo)
{
Model2.Add(new mode2 { .... });
}
return PartialView("_PartialView2", Model2);
default:
return PartialView("_DefaultPartialView");
}
}
【问题讨论】:
标签: c# asp.net asp.net-mvc partial-views