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

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

کاربر سایت

source

عضویت از 1395/11/13

مشکل اجرای مجدد پارشال ویو

  • پنجشنبه 22 تیر 1396
  • 09:07
تشکر میکنم

سلام

یک پارشال ویو دارم که یک لیست رو برمیگردونه.

برای بار اول به صورت اتومات اجرا میشه.

حالا یک مقداری رو توسط آجاکس به همون اکشن فرستادم.

می خوام View مربوط به همون بارگذاری مجدد بشه که اطلاعات جدید رو ببینم.

چطوری انجام میشه؟

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

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

سهیل علیزاده

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

  • پنجشنبه 22 تیر 1396
  • 10:23
کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 22 تیر 1396
  • 10:50

ممنون. 

ولی خود ویو CSHTML رو میخوام.

اطلاعاتم ارسال میشه و کارای لازم روش انجام میشه. فقط خود نتیجه رو میخوام روی صفحه ببینم.

مثلا با دستور Jquery.Load اون فایل cshtml جدید رو بیارم.

کاربر سایت

سهیل علیزاده

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

  • پنجشنبه 22 تیر 1396
  • 11:01

تنها لازم است کارای لازم رو آن انجام دهید و آن را مجددا Return کنید.

کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 22 تیر 1396
  • 11:32

تشکر از لطفتون.

یه موردی خوردم:

تووی Index که خودشم Partialview هست گفتم:

@Html.Action(_List)

تووی Return همین اکشن یعنی _List هم گفتم:

Return PartialView("_list", AllList)

الان ارور دارم وقتی که گفتم اکشن رو ریتورن کن.

کاربر سایت

سهیل علیزاده

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

  • پنجشنبه 22 تیر 1396
  • 11:35

خب ارور قرار بدید تا بتونم کمک کنم :)

کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 22 تیر 1396
  • 11:43

این متن ارور هست:

An exception of type 'System.Web.HttpException' occurred in System.Web.dll but was not handled in user code

Additional information: Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'.

این عکس ارور هست:

این هم اکشن مربوط به اون هست.


        [HttpGet]
        public ActionResult _List(string RecordCount)
        {
          
            SqlConnection ShowForm_con = new SqlConnection();
            ShowForm_con.ConnectionString = ConfigurationManager.ConnectionStrings["pppp"].ConnectionString;
            ShowForm_con.Close();
            ShowForm_con.Open();


            SqlCommand ShowRows_cmd = new SqlCommand();
            ShowRows_cmd.Connection = ShowForm_con;
            ShowRows_cmd.CommandText = "SELECT Id,ROW_NUMBER() OVER(ORDER BY Id)  AS [ردیف], ISNULL(Title,'ندارد') AS Title FROM  BaseInformation.TarifRaveshHayeVagozarys   ORDER BY Id OFFSET 0 ROWS FETCH NEXT " + RecordCount + " ROWS  ONLY";


            ShowRows_cmd.ExecuteNonQuery();
            SqlDataAdapter ShowRows_dtadptr = new SqlDataAdapter();
            ShowRows_dtadptr.SelectCommand = ShowRows_cmd;
            DataSet ShowRows_dtst = new DataSet();
            ShowRows_dtadptr.Fill(ShowRows_dtst, "TarifRaveshHayeVagozarys");
            DataTable ShowRows_dttbl = new DataTable();
            ShowRows_dttbl = ShowRows_dtst.Tables[0];
            SqlDataReader ShowRows_dtrdr = ShowRows_cmd.ExecuteReader();


            List<ListTarifRaveshHayeVagozaryViewModel> clientpp = new List<ListTarifRaveshHayeVagozaryViewModel>();
            int i;
            for (i = 0; i <= ShowRows_dtst.Tables[0].Rows.Count - 1; i++ )
            {
                clientpp.Add(new ListTarifRaveshHayeVagozaryViewModel() { Radif = ShowRows_dtst.Tables[0].Rows[i][1].ToString(), Title = ShowRows_dtst.Tables[0].Rows[i][2].ToString() });
               
                
            }

            return PartialView("_list",clientpp);
            
        }

کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 22 تیر 1396
  • 11:54

الان اوکی شده. 

ببینید الان RecordCount اگه روی 10 تنظیم بشه، باید تعداد رکوردهای جدولم 10 تا بشه. اما وقتی با آجاکس 10 رو بهش مقید می کنم، فقط رکوردای SQL رو 10 تا میکنه.... اما جدول خروجیم همون تعداد اولیه هست و Refresh نشده.

کاربر سایت

سهیل علیزاده

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

  • پنجشنبه 22 تیر 1396
  • 12:05

شما باید با کمک جی کوئری محتوای قبلی یا همون Partial قبلی پاک کنید و محتوای جدید رو جایگزین کنید.

<div id="PatialSection">
@Html.RenderAction("List")
</div>
  $('#ucertificate')
                .on('click',
                    '#Create',
                    function () {
              $('#PatialSection').html('');
                   var url = '@_createUrl';                                   
                        $('#PatialSection')
                            .load(url,
                                function () {
                                });
});

مشابه کد بالا، و از RenderAction استفاده کنید چون Performance بیشتری دارد.

کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 22 تیر 1396
  • 12:24

باز هم تشکر

الان در ویو _Index کد زیر رو نوشتم و به جای url:

<button id="asasdasd" type="button" style="width:100px;height:100px;"></button>
<script>
    $(document).ready(function () {
        $("#asasdasd").click(function () {

            $("#FormList-TarifRaveshHayeVagozary").html('');            
            $("#FormList-TarifRaveshHayeVagozary").load("@Url.Action("_List")");

        })

    })

</script>

رو قرار دادم. اما خبری از لود نیست.

کاربر سایت

سهیل علیزاده

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

  • پنجشنبه 22 تیر 1396
  • 12:30

برنامه رو Trace کنید تا متوجه شوید مشکل از کجاست و این که Console مرورگر خود را بررسی کنید خطا دارد یا خیر.

یک Break Point در کنترلر خود قرار دهید و خط به خط کد هایتان را بررسی کنید. برای Trace کردن کد های جاوا اسکریپتی هم میتوان از کلمه debuger; درون function استفاده کنید.

کاربر سایت

سهیل علیزاده

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

  • پنجشنبه 22 تیر 1396
  • 12:32

با استفاده از Inspect مروگر کد جاوااسکریپتی رندر شده رو برای من بفرستید.

کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 22 تیر 1396
  • 12:39
<div id="FormList-TarifRaveshHayeVagozary" class="row"></div>
<button id="asasdasd" type="button" style="width:100px;height:100px;"></button>
<script>
    $(document).ready(function () {
        $("#asasdasd").click(function () {
            var url = "/BaseInformation/TarifRaveshHayeVagozary/_List";
            $("#FormList-TarifRaveshHayeVagozary").html('');            
            $("#FormList-TarifRaveshHayeVagozary").load(url);

        })

    })

</script>

این کدهای خروجی هست.

این هم تصویر دیباگر:

کاربر سایت

سهیل علیزاده

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

  • پنجشنبه 22 تیر 1396
  • 12:44

Response Header رو به صورت متن بفرستید.

کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 22 تیر 1396
  • 12:49

بفرمایید:

Cache-Control	
private
Date	
Thu, 13 Jul 2017 08:19:21 GMT
Server	
Microsoft-IIS/8.0
Transfer-Encoding	
chunked
X-AspNet-Version	
4.0.30319
X-AspNetMvc-Version	
5.2
X-Powered-By	
ASP.NET
X-SourceFiles	
=?UTF-8?B?RTpcTXIgR29kYXJ6aVxGaXJzdCBQcm9qZWN0IEZpbGVcTWFkZWggMjdcQmFja3VwLU5hZW1pKHNhem1hbiBtb2RpcmlhdClcV2ViXEJhc2VJbmZvcm1hdGlvblxUYXJpZlJhdmVzaEhheWVWYWdvemFyeVxfTGlzdA
==?=

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 22 تیر 1396
  • 12:53

در تصویر و در ارور اشاره کرده به 401

یعنی شما دسترسی به مسیر ندارید

آیا از اهراز هویت برای اون آدرس استفاده کردید ؟

به صورت غیر ajax فراخوانی کنید وتست کنید

کاربر سایت

سهیل علیزاده

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

  • پنجشنبه 22 تیر 1396
  • 12:53

متن خطا تو این متن نبود لطفا متن خطارو بفرستید

کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 22 تیر 1396
  • 12:56

خیر. اهراز هویت نگذاشتم. اما دسترسی رو برای همه آزاد  گذاشتم:

        [AllowAnonymous]
        [HttpGet]
        public PartialViewResult _List(string RecordCount)
        {

}

کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 22 تیر 1396
  • 12:58

همه اطلاعاتی که گفتین رو گذاشتم. متن خطا هم فقط همون قرمز رنگه هست...

کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 22 تیر 1396
  • 13:03

الان که [AllowAnonymous] رو اضافه کردم مشکل حل شده و بارگذاری انجام میشه.

smiley

کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 22 تیر 1396
  • 13:10

تشکر از لطفتون. فرصتی باشه جبران کنم... yes

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

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

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

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