C# 如何将复杂类型转换为actionresult
我是MVC新手,正在尝试从控制器调用存储过程 在这个模型中,我有一个edmx,它将所有存储的进程作为函数 无法隐式转换类型C# 如何将复杂类型转换为actionresult,c#,asp.net-mvc,entity-framework,edmx,C#,Asp.net Mvc,Entity Framework,Edmx,我是MVC新手,正在尝试从控制器调用存储过程 在这个模型中,我有一个edmx,它将所有存储的进程作为函数 无法隐式转换类型 System.Collections.Generic.IEnumerable 到System.Web.Mvc.ActionResult 存在显式转换 我在控制器中为实体创建了一个对象,并在一个action result函数中调用了调用存储过程的函数,它返回了上述错误。 如何将结果集转换为actionresult 代码示例 public class DBController
System.Collections.Generic.IEnumerable
到System.Web.Mvc.ActionResult
存在显式转换 我在控制器中为实体创建了一个对象,并在一个action result函数中调用了调用存储过程的函数,它返回了上述错误。 如何将结果集转换为actionresult 代码示例
public class DBController : Controller
{
XXXXXXXEntities xXXXXXEntities = new XXXXXXXEntities();
public IEnumerable<usp_xxxxx_Result> usp_xxxxx()
{
return XXXXXEntities.usp_xxxxx();
}
}
public ActionResult ViewQuery() {
DBController dBController = new DBController();
return dBController.usp_xxxxx();
}
公共类DBController:Controller
{
xxxxxxx实体xXXXXXEntities=新的xXXXXXEntities();
公共IEnumerable usp_xxxxx()
{
返回xxxxx实体。usp_xxxxx();
}
}
公共操作结果视图查询(){
DBController DBController=新的DBController();
返回dBController.usp_xxxxx();
}
您需要返回从ActionResult继承的类
可能您想要的是:
public ActionResult ViewQuery() {
DBController dBController = new DBController();
return View(dBController.usp_xxxxx());
}
这将返回结果作为模型传入的视图
如果要返回JSON,请使用:
public ActionResult ViewQuery() {
DBController dBController = new DBController();
return JSON(dBController.usp_xxxxx());
}
.ToArray()解决了这个问题
public class DBController : Controller
{
XXXXXXXEntities xXXXXXEntities = new XXXXXXXEntities();
public IEnumerable<usp_xxxxx_Result> usp_xxxxx()
{
return XXXXXEntities.usp_xxxxx();
}
}
public ActionResult ViewQuery() {
DBController dBController = new DBController();
return dBController.usp_xxxxx().ToArray();
}
公共类DBController:Controller
{
xxxxxxx实体xXXXXXEntities=新的xXXXXXEntities();
公共IEnumerable usp_xxxxx()
{
返回xxxxx实体。usp_xxxxx();
}
}
公共操作结果视图查询(){
DBController DBController=新的DBController();
返回dBController.usp_xxxxx().ToArray();
}
工作起来很有魅力:顺便问一下,这是调用mvc中存储的进程的正确方法吗?对不起,我是新手,一般来说没关系。但是请记住,您的UI现在已超级绑定到存储过程的结构。因此,如果更改sp中的属性,UI层也必须更改。解决方法是返回一个“ViewModel”,它是一个“特定于”视图而不是DB的类。将存储过程类转换为“ViewQueryVM”类,并返回该类。