دسته بندی ها
01:23 1399/06/04

دلیل اجرا نشدن کدهای جی کویری در Partial View در Asp.net Core

مشخصات سوال کننده :
کاربر : pedram_khan     امتیاز کاربر : 277     رتبه کاربر : 6
دسته بندی : Asp.net Core جاوا اسکریپت جی کوئری

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3130
هوش مصنوعی

پاسخ هوش مصنوعی

مشکل شما احتمالاً به این دلیل است که کدهای جی کویری شما در @section Scripts قرار گرفته اند، اما این بخش به درستی در HTML نهایی رندر نمی شود. برای حل این مشکل، باید اطمینان حاصل کنید که در صفحه اصلی شما (بلوک والد)، @RenderSection("Scripts", required:false) در انتهای <body> وجود داشته باشد تا کدهای جی کویری درست بارگزاری شوند.

به عنوان مثال، ساختار کلی صفحه اصلی شما باید به شکل زیر باشد:





    
    Your Title
    
    


    
    
    @RenderSection("Scripts", required:false)



با اضافه کردن @RenderSection("Scripts", required:false) در این موقعیت، کدهای جی کویری شما به درستی اجرا خواهند شد.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : saedbfd 01:27 1399/06/04

کدهای شما درسته و مشکلی نداره. ولی یک نکته رو باید دقت کنید. شما وقتی که یک فرم Modal رو باز می کنید یا همون PartialView در واقع این پارشیال ویو جزیی از View اصلی هست که از درون اون باز شده. بنابراین برای نوشتن کدهای جی کوئری به دو صورت می تونید عمل کنید.

 

حالت اول این هست که کدهای جی کوئری رو داخل پارشیال ویو بنویسید، دقیقا مشابه کاری که شما الان انجام دادید. ولی دیگه نیازی نیست از section استفاده کنید. یعنی کدهای شما مشابه زیر میشه 

@{
    Layout = null;
}
<form asp-controller="Home" asp-action="Report">

    <div class="modal-header bg-light-blue" style="border-radius:5px 5px 0 0;">
        <button type="button" class="close pull-left" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title left">@ViewBag.ViewTitle</h4>
    </div>

    <div class="box-body">

        @Html.Raw(ViewBag.message)
  
        <div class="form-group" style="margin-top:15px;">
            <div class="col-xs-12 pull-left">
                <button class="btn btn-default pull-left" type="button" data-dismiss="modal">برگشت</button>
             
            </div>
        </div>

    </div>

</form>


<script>
        $(document).ready(function() {
            alert("salam");
        });
</script>

 

حالت دوم هم این هست که کدهای جی کوئری خودتون رو اصلا داخل پارشیال ویو ننویسید و درون همون View که از درون اون صدا زده شده کدهای جی کوئری رو بنویسید که در این حالت باید در داخل section قرار بگیره در ویوی اصلی!

 

با توجه به شرایطی که در پروژه خودتون دارید می تونید از یکی از این حالات استفاده کنید. بنظرم حالت اول بهتره ولی.

به این پاسخ امتیاز بدهید    2
امتیاز: 1664 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود