C# asp.net mvc中同一视图页中的搜索表单和搜索结果
我正在尝试创建一个模块,其中包含搜索表单和搜索结果,如下图所示 在该模块中,我有4个下拉列表和一个文本字段 这就是我现在所做的 这是模型课C# asp.net mvc中同一视图页中的搜索表单和搜索结果,c#,asp.net,asp.net-mvc,asp.net-mvc-4,search,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Search,我正在尝试创建一个模块,其中包含搜索表单和搜索结果,如下图所示 在该模块中,我有4个下拉列表和一个文本字段 这就是我现在所做的 这是模型课 public class ProductCollectionVM { public IEnumerable<ProductCollection> List_ProductCollection { get; set; } public ProductCollection Form_ProductCollection { get;
public class ProductCollectionVM
{
public IEnumerable<ProductCollection> List_ProductCollection { get; set; }
public ProductCollection Form_ProductCollection { get; set; }
}
public class ProductCollection
{
public string Product_ID { get; set; }
public string ProductType_ID { get; set; }
public string ProductCategory_ID { get; set; }
// more properties
}
但一旦我调试了它,就会出现以下错误
传递到字典中的模型项的类型为
'System.Collections.Generic.List'1[Project_Name.Models.ProductCollection],
但此词典需要类型为的模型项
'项目名称.Models.ProductCollectionVM'
在我的控制器类中,这是正确的方法吗?或者在您的
控制器中的相同视图中,是否有其他更好的方法来执行此操作
select new ProductCollection
但在您的视图上
使用:
@model albaraka.Models.ProductCollectionVM
您应该将控制器中的类更改为ProductCollectionVM
您的视图将模型声明为@model albaraka.Models.ProductCollectionVM
,但在提交时,您将视图返回为IEnumerable
,因此出现错误
在POST方法中,需要初始化ProductCollectionVM
的新实例并返回它
public ActionResult Product_Search(.....)
{
// filter your collection
var incomplete_products = ....
ProductCollectionVM model = new ProductCollectionVM()
{
List_ProductCollection = incomplete_products;
};
return View(model)
}
但是,通过使用ajax提交表单值并返回表的部分视图或包含表值的JSON并在成功回调中更新DOM,您将获得更好的性能。请参阅此以获取简化示例您查看的has@model ProductCollectionVM
,因此在控制器中,您需要返回ProductCollectionVM
(不是IEnumerable
)的实例。如何返回ProductCollectionVM的实例?初始化它,然后将List_ProductCollection
设置为completed_products
,并返回它(但为了获得更好的性能,您确实应该使用ajax)ProductCollectionVM model=new ProductCollectionVM()代码>这是如何初始化它的?试试这个。显然不完整,但我相信你会明白的
@model albaraka.Models.ProductCollectionVM
public ActionResult Product_Search(.....)
{
// filter your collection
var incomplete_products = ....
ProductCollectionVM model = new ProductCollectionVM()
{
List_ProductCollection = incomplete_products;
};
return View(model)
}