مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

مشکل با web api

چهارشنبه, 20 تیر 1397 15:55

مشکل با web api

سلام من یک web api ساختم که در یکی از کنترلر ها دو متد زیر رو دارمگ

[HttpGet]
        public List<ComboBox> FillCombobox(string userid,string s)
        {
            OracleConnection conn = new OracleConnection();
            conn.ConnectionString = "Data Source=orcl;User ID=omran;password=omran";
            conn.Open();

            OracleCommand cmd = new OracleCommand();
            cmd.Connection = conn;
            cmd.CommandText = "select * from tabl0 t where t.l0code<7 and substr(t.l0code,0,1) in (select substr(tt.nservicecode,0,1) from tabuseraccess tt where tt.nuser_id=" + userid + ") order by 2";
            if ((s == "1")) 
            {
                cmd.CommandText = "select * from tabl0 t where 1=1 order by 2";
            }

            DataTable dt = new DataTable();
            OracleDataAdapter oda = new OracleDataAdapter(cmd);
            oda.Fill(dt);
            int ind = 0;
            
            for (int i = 0; i <= dt.Rows.Count - 1; i++)
            {
                ComboBox cb = new ComboBox();
                cb.L0CODE=dt.Rows[i][0].ToString();
                cb.L0NAME=dt.Rows[i][1].ToString();
                cb.LBLKEYWORD1=dt.Rows[i][2].ToString();
                cb.LBLKEYWORD2=dt.Rows[i][3].ToString();
                cb.LBLKEYWORD3=dt.Rows[i][4].ToString();
                cb.LBLKEYWORD4=dt.Rows[i][5].ToString();
                cb.LBLKEYWORD5=dt.Rows[i][6].ToString();
                cb.LBLKEYWORD6=dt.Rows[i][7].ToString();
                cb.LBLKEYWORD7=dt.Rows[i][8].ToString();
                cb.LBLKEYWORD8=dt.Rows[i][9].ToString();
                cb.LBLKEYWORD9=dt.Rows[i][10].ToString();
                cb.LBLKEYWORD10=dt.Rows[i][11].ToString();
                cb.LBLKEYWORD11=dt.Rows[i][12].ToString();
                cb.LBLKEYWORD12=dt.Rows[i][13].ToString();
                cb.LBLKEYWORD13=dt.Rows[i][14].ToString();
                cb.LBLKEYWORD14=dt.Rows[i][15].ToString();
                cb.LBLKEYWORD15=dt.Rows[i][16].ToString();
                cb.LBLKEYWORD16=dt.Rows[i][17].ToString();
                combobox.Add(cb);
            }
            conn.Close();
            return combobox;
        }

و متد دوم

[HttpGet]
        public List<ComboBox> FillComboboxAccess()
        {
            OracleConnection conn = new OracleConnection();
            conn.ConnectionString = "Data Source=orcl;User ID=omran;password=omran";
            conn.Open();

            OracleCommand cmd = new OracleCommand();
            cmd.Connection = conn;
            cmd.CommandText = "select * from tabl0 t where t.l0code<7  order by 2";
           

            DataTable dt = new DataTable();
            OracleDataAdapter oda = new OracleDataAdapter(cmd);
            oda.Fill(dt);
            int ind = 0;

            for (int i = 0; i <= dt.Rows.Count - 1; i++)
            {
                ComboBox cb = new ComboBox();
                cb.L0CODE = dt.Rows[i][0].ToString();
                cb.L0NAME = dt.Rows[i][1].ToString();

                comboboxx.Add(cb);
            }
            conn.Close();
            return comboboxx;
        }

اسم کنترلر api من Utility هستش حالا وقتی یکی از متد ها رو فراخونی می کنم با استفاده از لینک :

http://localhost:22287/api/Utility/FillComboboxAccess

خطای زیر رو بهم میده لطفا کمک کنید

{"Message":"An error has occurred.","ExceptionMessage":"Multiple actions were found that match the request: \r\nSystem.Collections.Generic.List`1[OmranWebApi3.Models.ComboBox] FillComboboxAccess() on type OmranWebApi3.Controllers.UtilityController\r\nSystem.Collections.Generic.List`1[OmranWebApi3.Models.DocTypes] GetFehrest() on type OmranWebApi3.Controllers.UtilityController","ExceptionType":"System.InvalidOperationException","StackTrace":"   at System.Web.Http.Controllers.ApiControllerActionSelector.ActionSelectorCacheItem.SelectAction(HttpControllerContext controllerContext)\r\n   at System.Web.Http.Controllers.ApiControllerActionSelector.SelectAction(HttpControllerContext controllerContext)\r\n   at System.Web.Http.ApiController.ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)\r\n   at System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncInternal(HttpRequestMessage request, CancellationToken cancellationToken)\r\n   at System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)"}

چهارشنبه, 20 تیر 1397 16:07

شما نمیدونید دو اکشن هم نام داشته باشید در حالت get

نام یکیشون رو عوض کنید 

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید