Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 具有多型号和查找表的MVC3搜索屏幕_Asp.net_Asp.net Mvc 3_Entity - Fatal编程技术网

Asp.net 具有多型号和查找表的MVC3搜索屏幕

Asp.net 具有多型号和查找表的MVC3搜索屏幕,asp.net,asp.net-mvc-3,entity,Asp.net,Asp.net Mvc 3,Entity,我将开发一个搜索页面,在那里我将有多个来自不同模型(实体)的字段提交。此外,我在同一屏幕上有多个DropDownLists,其值将从查找表填充 我想知道(在这种情况下)什么是最好的方法。我是否应该创建一个ViewModel并将该模型传递给我的视图?还是我需要一种不同的方法 但我不确定应该如何处理从查找表填充的下拉字段 另外,在提交页面时,我应该如何在下一个搜索详细信息屏幕中获取这些值,以从db获取所有记录 我将MVC3与EF 4.2一起使用绝对,最好的方法绝对是使用ViewModel。这样就足够

我将开发一个搜索页面,在那里我将有多个来自不同模型(实体)的字段提交。此外,我在同一屏幕上有多个
DropDownList
s,其值将从查找表填充

我想知道(在这种情况下)什么是最好的方法。我是否应该创建一个
ViewModel
并将该模型传递给我的视图?还是我需要一种不同的方法

但我不确定应该如何处理从查找表填充的下拉字段

另外,在提交页面时,我应该如何在下一个搜索详细信息屏幕中获取这些值,以从db获取所有记录


我将MVC3与EF 4.2一起使用绝对,最好的方法绝对是使用ViewModel。这样就足够了:

public class Model1
{
    public string Prop1 { get; set; }
}

public class Model2
{
    public string Prop2 { get; set; }
}

public class ViewModel1
{
    public Model1 Model1 { get; set; }
    public Model2 Model2 { get; set; }
    public SelectList DropDownItems { get; set; }
}

您可以在控制器的操作方法中使用大量的
SelectListItem
对象填充
SelectList
对象,这些对象将此ViewModel传递给视图。

拥有一个具有必要属性(您的搜索条件)的ViewModel是一个不错的选择。 当您为搜索执行HttpGet操作时,从查找表加载所有数据并加载到属性(例如:States等)


因此,我将创建一个仅具有必要搜索属性的viewmodel。这意味着我不需要在我的viewmodel中引用我的整个models属性。还有一件事,在搜索结果时,我需要首先使用外部db搜索某个关键字段,如果找到,它将使用当前db搜索整个字段。我的问题是我已经有了一个搜索条件的查询,我可以在我的EF上使用该查询吗?您是否有任何示例或链接来实现此目的。@PrasantaBiswal:是的,请在搜索表单中使用您想要的任何字段作为属性。
  public ActionResult Search()
  {
    SearchViewModel objVM=new SearchViewModel();
    objVM.States=MyService.GetStates();
    objVM.Type=MyService.GetUserTypes();    
    return objVM.    
  }

  [HttpPost]  
  public ActionResult Search(SearchViewModel objVM)
  {
      if(ModelState.IsValid)
      {
         //Go for the search and return results

      } 
      return View(objVm); 
  }