【发布时间】:2015-10-21 14:27:09
【问题描述】:
我正在开发一个 asp.net mvc-5 Web 应用程序。我有以下动作方法,它在控制器类中返回一个 ActionResult :-
public ActionResult AutoComplete(string term, string SearchBy)
{
if (SearchBy == "Tag")
{
var tech = repository.AllFindTechnolog(term.Trim()).ToList();
var resources = repository.GetResources(tech.Select(a => a.IT360ID.Value).ToArray(), false).ToList();
var query = from techItems in tech
join resourcesItems in resources
on techItems.IT360ID.Value equals resourcesItems.RESOURCEID // join based on db2ID
orderby techItems.PartialTag
select new { extra = true, label = techItems.Tag.ToString(), techtype = techItems.TechnologyType.Name, status = resourcesItems.ResourceState.DISPLAYSTATE, customername = resourcesItems.ResourceLocation.SiteDefinition.AccountDefinition.ORG_NAME.ToString(), resourcename = resourcesItems.RESOURCENAME.ToString(), sitename = resourcesItems.ResourceLocation.SiteDefinition.SDOrganization.NAME };
return Json(query, JsonRequestBehavior.AllowGet);
}
else
{
var activeResources = repository.FindActiveResourceByName(term.Trim(), true).ToList();//.OrderBy(p => p.RESOURCENAME).Select(a => new { label = a.RESOURCENAME }).ToList();
var resources = repository.GetResources(activeResources.Select(a => a.RESOURCEID).ToArray(), false).ToList();
var tech = repository.getTechnologiesByIT360ids(activeResources.Select(a=>a.RESOURCEID).ToArray()).ToList();
var query = from techItems in tech
join resourcesItems in resources
on techItems.IT360ID.Value equals resourcesItems.RESOURCEID // join based on db2ID
orderby techItems.Tag
select new { extra = true, label = resourcesItems.RESOURCENAME.ToString(), techtype = techItems.TechnologyType.Name, status = resourcesItems.ResourceState.DISPLAYSTATE, customername = resourcesItems.ResourceLocation.SiteDefinition.AccountDefinition.ORG_NAME.ToString(), resourcename = techItems.Tag.ToString(), sitename = resourcesItems.ResourceLocation.SiteDefinition.SDOrganization.NAME };
return Json(query, JsonRequestBehavior.AllowGet);
}
}
现在我需要将此方法用于另一个控制器类。所以我尝试将此方法移至共享模型类,并从两个操作方法中引用此共享模型类。但我不确定我需要如何定义模型类方法定义。因为我不能/不应该从模型类中返回 ActionResult,所以任何人都可以对此提出建议吗?
【问题讨论】:
-
为什么不创建一个返回具体类型而不是匿名对象的方法?
-
@YuvalItzchakov 你能在这方面提供更多建议吗?
标签: c# asp.net asp.net-mvc asp.net-mvc-5