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

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

تاپیک مورد نظر بسته شده است

کاربر سایت

mohammad_zf

عضویت از 1394/12/08

خطا در WebAPI RouteConfig

  • شنبه 28 بهمن 1396
  • 11:34
تشکر میکنم

با سلام دوستان یک پروژه WebAPI ساختم جدیدا دارم روش کار میکنم و هنوز خیلی مشکل دارم ممنون میشم اگر راهنماییم کنید.

داخل پروژه یک API ساختم به اسم AndroidController و میخوام یک پارامتر بفرستم بهش و یک جواب برام برگرده.

اما فکر میکنم در RouteConfig مشکل داره پروژم و کلا هیچ URl کار نمیکنه ، متاسفانه یاد ندارم چطور باید از RouteConfig استفاده کنم. 

3تا عکس گذاشتم ممنون میشم راهنماییم کنید.

میخوام یک مقدار به پارامتر test در تابع  GetUSers بفرستم و یک جواب برام برگرده. 

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 28 بهمن 1396
  • 11:41

اول: آدرس ارسالی اشتباه است و همچنین نام اکشن ذکر نشده.

دوم: شما دارید به صورت GET درخواست را ارسال می کنید ولی بالا اکشن خود از صفت HttpPost استفاده کرده اید.

کاربر سایت

mohammad_zf

عضویت از 1394/12/08

  • شنبه 28 بهمن 1396
  • 11:52

  public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapHttpRoute(
                name: "ActionApi",
                routeTemplate: "api/{controller}/{action}/{id}",
                defaults: new { controller = "Values", action = "Get_users", id = UrlParameter.Optional }

                );

            routes.MapRoute(
                          name: "Default",
                          url: "{controller}/{action}/{id}",
                          defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                      );
        }


  public class AndroidController : ApiController
    {

        Class1 clas1 = new Class1();
        // [HttpPost]

        [ActionName("Get_users")]
        public string GetUSers(string test)
        {
            ApplicationDbContext db = new ApplicationDbContext();

            if (clas1.Check_user(test) != "Username Wrong")
            {
                DataTable dt = new DataTable();

                SqlConnection con = new SqlConnection("...");
                SqlCommand cmd = new SqlCommand("SELECT [name],[family],[Fullname] FROM [User]", con);
                con.Open();
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(dt);
                con.Close();


                string JSONString = string.Empty;
                JSONString = JsonConvert.SerializeObject(dt);
                return JSONString;

            }
            else
            {
                string JSONString = string.Empty;
                JSONString = JsonConvert.SerializeObject("wrong");
                return JSONString;
            }

        }

       
    }

این تغییرات را اعمال کردم

ممنون میشم بیشتر راهنمایی کنید که به چه نحوه ای استفاده کنم که درست بشه کد.

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 28 بهمن 1396
  • 12:03

Route ی که خودتون در RouteConfig تعریف کردید و صفت ActionName رو پاک کنید و برای دریافت داده ها به صورت از آدرس زیر استفاده کنید:

api/android/GetUSers?test=fakeData

کاربر سایت

mohammad_zf

عضویت از 1394/12/08

  • شنبه 28 بهمن 1396
  • 12:16

وقعا ممنونم درست شد ، مدتیه که درگیرش بودم.

فقط یک سوال دیگه

آگر بخوام 2 یا مثلا 3 پارامتر در همین URL ارسال کنم ، URL آن به چه شکل میشه ؟؟؟؟ 

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • شنبه 28 بهمن 1396
  • 12:20
api/android/GetUSers?test=fakeData&othertest=towfakedata

public string GetUSers(string test, string othertest)

کاربر سایت

mohammad_zf

عضویت از 1394/12/08

  • شنبه 28 بهمن 1396
  • 12:22

خیلی خیلی ممنونم .

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

تاپیک مورد نظر بسته شده و امکان درج پاسخ وجود ندارد

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)