【发布时间】:2014-04-06 15:40:30
【问题描述】:
我有一个编辑视图,它是一个表单。我希望用户能够查找/搜索 UPC(搜索数据库表)并查看该表单上的匹配记录,以便他们可以选择一个结果,然后该结果将填充编辑视图表单上的一个字段,并使用表单提交到 POST。
我正在进行的工作是查找/搜索。我的编辑视图表单上有搜索框,搜索结果有一个空 div:
<div class="form-group" id="search-pac">
@Html.Action("PacSearch", "ItemRequest");
</div>
<div class="form-group" id="search-pac-results">
</div>
提交时,我成功看到 UPC 击中了控制器:
[HttpPost]
public ActionResult PacSearch(string pacupc)
{
if (pacupc != null)
{
try
{
List<PriceAssociationLookup> matchingPacs = new List<PriceAssociationLookup>();
matchingPacs = matchingPacs.GetPacs(pacupc);
return PartialView("_PacSearchResultsPartial", matchingPacs);
}
catch (Exception e)
{
Alert.SetAlert(this.HttpContext, String.Format("There was an error in the Price Association Code lookup for UPC {0}. Error: {1}", pacupc, e), "alert-warning");
}
}
return PartialView("_PacSearchResultsPartial","UPC not found");
}
但是我无法在控制器中执行哪些操作才能从数据库中获取匹配记录列表。使用我当前在控制器中的代码,我收到错误:“错误 1 'System.Collections.Generic.List' 不包含 'GetPacs' 的定义,并且没有扩展方法 'GetPacs' 接受类型的第一个参数'可以找到 System.Collections.Generic.List'(您是否缺少 using 指令或程序集引用?)"
GetPacs 被定义为接受一个字符串。如何将 pacups 字符串传递给 GetPacs?
这里是相关的类:
namespace Portal.Repository.SqlDatabase {
public partial class PriceAssociationLookup : IPriceAssociationLookupRepository
{
#region IPriceAssociationLookupRepository Members
IEnumerable<IPriceAssociationLookupRepository> IPriceAssociationLookupRepository.GetPacs(string upc)
{
using (PortalDataEntities entities = new PortalDataEntities())
{
var priceAssociationLookups = (from priceassociationlookup in entities.PriceAssociationLookups
where priceassociationlookup.Upc == this.Upc
select priceassociationlookup).ToList();
return priceAssociationLookups;
}
}
#endregion IPriceAssociationLookupRepository Members
【问题讨论】:
-
我更近了。我将控制器代码更改为: try { PriceAssociationLookup pacRep = new PriceAssociationLookup(); List
matchingPacs = pacRep.GetPacs(pacupc); return PartialView("_PacSearchResultsPartial", matchingPacs); } -
我现在收到错误消息“传递到字典中的模型项的类型为 'System.Collections.Generic.List`1[Portal.BusinessModel.Entities.PriceAssociationLookup]',但是这本字典需要“Portal.BusinessModel.Entities.PriceAssociationLookup”类型的模型项”
标签: c# asp.net-mvc entity-framework asp.net-mvc-4