Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert complex type to actionresult

I am new to MVC, and trying to call a stored proc from the controller.

In the model I have edmx which has all stored procs as functions

Cannot implicitly convert type System.Collections.Generic.IEnumerable<MVC.Models.xxcomplextype_result> to System.Web.Mvc.ActionResult
An explicit conversion exists.

I created an object for the entity in the controller and in an action result function I called the function calling the stored proc and it returned the above error. How should I convert the result set to actionresult?

Code Sample

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();
}
like image 258
Vignesh Subramanian Avatar asked Dec 23 '13 07:12

Vignesh Subramanian


1 Answers

You'll need to return a class that inherits from ActionResult.

Probably you want something like:

public ActionResult ViewQuery() {
        DBController dBController = new DBController();
        return View(dBController.usp_xxxxx());
}

This returns the view with the result passed in as Model.

If you want to return JSON use:

public ActionResult ViewQuery() {
        DBController dBController = new DBController();
        return JSON(dBController.usp_xxxxx());
}
like image 50
Gideon Avatar answered Sep 28 '22 07:09

Gideon