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

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

کاربر سایت

محمد ملکی

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

مشکل در بازگشت نمایش از کنترولر در مدل ایجکسی

  • شنبه 14 اسفند 1395
  • 10:38
تشکر میکنم

سلام من یه view به صورت زیر دارم

توو لحضه اول پروژه های انجام شده رو نشون میده

اینم کد view

@model List<ProjeZivarAlat.Models.DomainModel.Project>
@{
    ViewBag.Title = "Projects";
    Layout = "~/Views/Shared/_MainLayout.cshtml";
}
<link rel="stylesheet" href="~/Content/Shop/assets/css/style.css">

<link rel="stylesheet" href="~/Content/Shop/assets/plugins/cube-portfolio/cubeportfolio/css/cubeportfolio.min.css">
<link rel="stylesheet" href="~/Content/Shop/assets/plugins/cube-portfolio/cubeportfolio/custom/custom-cubeportfolio.css">




 
<div class="breadcrumbs">
    <div class="container">
        <ul class="pull-right breadcrumb">

            <li> @Html.ActionLink("صفحه اصلی", "Index")</li>
            <li class="active">پروژه ها </li>
        </ul>
    </div>
</div>

<div class="container content">
    <!--=== Cube-Portfdlio ===-->
    <div class="cube-portfolio container margin-bottom-60">
        <div class="content-xs">
            <div id="filters-container" class="cbp-l-filters-text content-xs">
                <div data-filter="*" class="cbp-filter-item-active cbp-filter-item">@Ajax.ActionLink("پروژه های انجام شده", "ProjectsLink", new { actionn = "anjam" }, new AjaxOptions() { InsertionMode = InsertionMode.Replace, UpdateTargetId = "grid-container" }) </div> |
                <div data-filter=".identity" class="cbp-filter-item"> @Ajax.ActionLink("پروژه های در حال اجرا", "ProjectsLink", new { actionn = "ejra" }, new AjaxOptions() { InsertionMode = InsertionMode.Replace, UpdateTargetId = "grid-container" })</div>
               
            </div><!--/end Filters Container-->
        </div>

        <div id="grid-container" class="cbp-l-grid-agency">
            @if (Model != null)
            {

                foreach (var item in Model)
                {
                    <div class="cbp-item graphic">
                        <div class="cbp-caption margin-bottom-20">

                            <div class="cbp-caption-defaultWrap">
                                <img src="@Url.Content("~/Content/UploadImages/Project/" + @item.Project_OwnerImage )" alt="">
                            </div>
                            <div class="cbp-caption-activeWrap">
                                <div class="cbp-l-caption-alignCenter">
                                    <div class="cbp-l-caption-body">
                                        <ul class="link-captions no-bottom-space">
                                            <li><a href="@Url.Content("~/Content/UploadImages/Project/" + @item.Project_OwnerImage )" class="cbp-lightbox" data-title="@item.Project_Title"><i class="rounded-x fa fa-search"></i></a></li>
                                        </ul>
                                    </div>
                                </div>
                            </div>

                        </div>
                        <div class="cbp-title-dark">
                            <div class="cbp-l-grid-agency-title">@item.Project_Title</div>
                            <div class="cbp-l-grid-agency-desc">@item.Project_Mohandes</div>
                        </div>
                    </div>
                }
            }
        </div><!--/end Grid Container-->

       

    </div>
    <!--=== End Cube-Portfdlio ===-->
</div>

و این هم کنترلر

 public ActionResult Projects()
        {
            ProjectRepository proje = new ProjectRepository();


            var Projects = proje.AllProject_Anjam();
            return View("Projects", Projects);


        }

حالا مشکل اینجاست اون دو تا لینک پروژه های انجام شده و پروژه های در حال اجرا رو گفتم به صورت ایجکس برو و بیار

این کد توو view

  <div data-filter="*" class="cbp-filter-item-active cbp-filter-item">@Ajax.ActionLink("پروژه های انجام شده", "ProjectsLink", new { actionn = "anjam" }, new AjaxOptions() { InsertionMode = InsertionMode.Replace, UpdateTargetId = "grid-container" }) </div> |
                <div data-filter=".identity" class="cbp-filter-item"> @Ajax.ActionLink("پروژه های در حال اجرا", "ProjectsLink", new { actionn = "ejra" }, new AjaxOptions() { InsertionMode = InsertionMode.Replace, UpdateTargetId = "grid-container" })</div>
               

و این هم کد توو کنترولر

   public ActionResult ProjectsLink(string actionn)
        {
            ProjectRepository proje = new ProjectRepository();
            if (actionn != null && actionn == "anjam")
            {

                var Projects = proje.AllProject_Anjam();
                return PartialView("Project", Projects);
            }
            else
            {
                var Projects = proje.AllProject_Ejra();
                return PartialView("Project", Projects);
            }




        }

الان وقتی اجرا میکنم و رو لینک میزنم به صورت ایجکسی نمیره معمولی میره و فقط پارشیال ویو رو برمیگردونه منظور توو جاش که گفتم بر نمی گردونه

ایراد کجاست؟

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

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

ایمان مدائنی

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

  • شنبه 14 اسفند 1395
  • 10:52

مستقیم کد Ajax بنویسید

مثلا برای onclick دستوری بنویسید که از کنترلر get کنه و پارشیال را در view مربوطه نمایش بده

اگر بلد نیستید در w3school یه مطالعه راجع به ajax بکنید

کاربر سایت

محمد ملکی

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

  • شنبه 14 اسفند 1395
  • 10:56

خب چه فرقی میکنه؟

میگید متستقیم بنویسم در حال اجرا رو زد این تابع ایجکسی فرخوانی بشه خب باز میره توو کنترولر همون تابع رو میخوونه و پارشیال بر میگردونه خب چه تاثیری داره؟

باز امتحان میکنم

کاربر سایت

محمد ملکی

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

  • شنبه 14 اسفند 1395
  • 11:19

آقای مدائنی درست شد

فقط نمیدونم چرا توو div ای که میخوام نشون نمیده

ببینید

  <div id="grid-container" class="cbp-l-grid-agency">
           
                @if (Model != null)
                {

                    foreach (var item in Model)
                    {
                        <div class="cbp-item graphic">
                            <div class="cbp-caption margin-bottom-20">

                                <div class="cbp-caption-defaultWrap">
                                    <img src="@Url.Content("~/Content/UploadImages/Project/" + @item.Project_OwnerImage )" alt="">
                                </div>
                                <div class="cbp-caption-activeWrap">
                                    <div class="cbp-l-caption-alignCenter">
                                        <div class="cbp-l-caption-body">
                                            <ul class="link-captions no-bottom-space">
                                                <li><a href="@Url.Content("~/Content/UploadImages/Project/" + @item.Project_OwnerImage )" class="cbp-lightbox" data-title="@item.Project_Title"><i class="rounded-x fa fa-search"></i></a></li>
                                            </ul>
                                        </div>
                                    </div>
                                </div>

                            </div>
                            <div class="cbp-title-dark">
                                <div class="cbp-l-grid-agency-title">@item.Project_Title</div>
                                <div class="cbp-l-grid-agency-desc">@item.Project_Mohandes</div>
                            </div>
                        </div>
                    }
                }
          
        </div><!--/end Grid Container-->

توو این div تووو لحضه اول یه چی نشون میدم بعد هم که میگم رو لینک در حال اجرا و انجام شده زدید بره این ا

<a onclick="FunAnjam()">پروژه های انجام شده</a>
<a onclick="FunEjra()"  >پروژه های در حال اجرا</a>

اینم توابع ایجکسی

 function FunEjra() {
        $.ajax({
            type: "GET",
            url: '@Url.Action("ProjectsLink", "Home", new { actionn = "ejra" })',
            dataType: "html",
            contentType: "application/json; charset=utf-8",
            success: function (result) {
                $('#res').html(result);
                $('#grid-container').removeData();
                           
            },
            error: function (result) {


            }
        });
    }

    

    function FunAnjam() {
        $.ajax({
            type: "GET",
            url: '@Url.Action("ProjectsLink", "Home", new { actionn = "anjam" })',

            dataType: "html",
            contentType: "application/json; charset=utf-8",

            success: function (result) {
                $('#res').html(result);
                  },
            error: function (result) {


            }
        });
    }

وقتی نتیجه رو میگم برگردون توو یه div الکی مثلاً res نشون میده

اما من باید توو div به نام grid-container برگردونم چون اون css زیبا داره

ایرادم به نظرتون کجاست؟

وقتی میزنم توو grid-container برگردون هیچی نشون نمیده و سفید میده

کاربر سایت

ایمان مدائنی

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

  • شنبه 14 اسفند 1395
  • 11:35

شما گفتید درا ون نمایش بده

   $('#res').html(result);

در اینجا ID المان مورد نظر را قرار دهید

کاربر سایت

محمد ملکی

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

  • شنبه 14 اسفند 1395
  • 11:49

id اشو گذاشتم اما نمیشه نشون نمیده

کاربر سایت

ایمان مدائنی

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

  • شنبه 14 اسفند 1395
  • 12:30

با فایرباگ چک کنید وارد میشه یا خیر

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

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

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

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

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