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

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

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

بدست آوردن QueryString در Action

  • دوشنبه 16 مرداد 1396
  • 09:55
تشکر میکنم

با سلام من یه اکشن دارم که یک Querystring در url ایجاد میکنه به صورت زیر

من میخوام از این serach در یک اکشن دیگه استفاده کنم اینو نوشتم  اما جواب نمیده

  [HttpPost]
      
        public ActionResult Paging(int i)
        {

            string search = "";
            search = Request.QueryString["search"].ToString();

توو اینترنتم گشتم چیزی پیدا نکردم یعنی تست کردم جواب نداد

ممنونم

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

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

سهیل علیزاده

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

  • دوشنبه 16 مرداد 1396
  • 10:15

خب معلومه که جواب نمیده چون request ارسالی مختص این Action نیست تا شامل Quey setring مورد نظر باشد.

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • دوشنبه 16 مرداد 1396
  • 13:18

خب من چیکار کنم ؟ من فقط توو url این search رو دارم و هیچ جوره بهش دسترسی ندارم نمیتونم توو یه اکشن دیگه از url صفحه رو بخوونم و querystring اشو دربیارم ؟

یه راه حل دیگه ندارید؟

کاربر سایت

سهیل علیزاده

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

  • دوشنبه 16 مرداد 1396
  • 13:25

به این صورت عمل کنید:

        [HttpGet()]
        [Route("Home/Moshaver")]
        public ActionResult Moshaver(string search)
        {
            return View();
        }
http://localhost:7537/Home/Moshaver?search=soheil

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • دوشنبه 16 مرداد 1396
  • 13:43

ببینید من یه صفحه دارم به صورت زیر از اکشن Moshaver استفاده میکنه

وقتی توو سرچ میرم چیزی رو سرچ میکنم به صورت زیر میشه

وقتی چیزی رو سرچ میکنم اون بالا توو querystring میاد من توو همین view مربوط به Moshaver برای این دکمه های پایین نوشتم که دکمه رو زدیم بره به یه اکشن دیگه و ایجکسی موارد رو بیاره

 <button class="btn-u btn-u-default" onclick="Fun(@ii);">@ii.ToString()</button>

و اینم کدش که در view مربوط به Moshaver هست

 function Fun(i) {
            $.ajax({
                type: "POST",
                url: '@Url.Action("Paging", "Home")',
                data: JSON.stringify({ i: i }),
                contentType: "application/json; charset=utf-8",
                dataType: "html",
                success: function (result) {
                    $("#ress").html(result);
                },
                error: function (result) {
                    alert("برنامه با خطا مواجه شد");
                }
            });
        };

حالا میخوام از این serach که در url هست در این اکشن استفاده کنم چیکار کنم؟


        [HttpPost]

        public ActionResult Paging(int i)
        {
            if (Request.IsAjaxRequest() == true)
            {

                grdMoshaver entity = new grdMoshaver();

                MoshaverRepository bl = new MoshaverRepository();

                var list = bl.All().Where(c => c.Moshaver_Status == true).ToList();

                string search = "";
                search = Request.QueryString["search"].ToString();

                if (search != null && search != "")
                {
                    list = list.Where(c => c.Moshaver_Text.Contains(search)).ToList();
                }

ممنونم(خیلی کارم گیر هست و واقعاً عجله ای هست)

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • دوشنبه 16 مرداد 1396
  • 13:45

آقای علیزاده من توو اکشن Paging این serach رو میخوام متوجه منظورم میشید؟

کاربر سایت

سهیل علیزاده

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

  • دوشنبه 16 مرداد 1396
  • 14:00

متوجه شدم.

اول از GET به جای POST استفاده کنید در این قسمت استفاده POST غیر ضروری است و چون جنبه نمایشی دارد باید از GET استفاده کنید.

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

        [HttpGet]
        [Route("")]

        [Route("Moshaver/{i}/{search?}")]
        public ActionResult Paging(int i, string search)
        {
            return View();
        }
localhost:7537/Moshaver/2?search=test

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

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

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

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