নেস্টেড আংশিক দৃষ্টিকোণ থেকে নিয়ন্ত্রককে জটিল প্রদর্শনের পাঠানো - MVC3

এখানে অ্যাজাক্স সাহায্যের একটি বিট খুঁজছেন ...

আমি একটি জটিল দৃশ্য যা বেশ জটিল ViewModel উপর নির্মিত হয়।

পৃষ্ঠায় আমার কাছে 3 টি কলাম রয়েছে যেখানে প্রতিটি কলাম একটি পূর্ণ ভ্রমণের প্রতিনিধিত্ব করে যা পরে পৃথক ফ্লাইটগুলি দেখানোর জন্য ভাঙা হয়।

প্রতিটি ফ্লাইট বিশদ বিবরণ ধারণকারী একটি বাক্স দ্বারা প্রতিনিধিত্ব করা হয় (শুরু এবং শেষ অবস্থান, প্রস্থান সময়, আগমনের সময়, অপারেটর ইত্যাদি) বাক্সটি এই অন্যান্য স্থান থেকে নেওয়া অন্যান্য ফ্লাইটের ড্রপডাউন তালিকাও অন্তর্ভুক্ত করেছে (যেমন আপনি অতিরিক্ত 6 ঘন্টার জন্য বিমানবন্দরের চারপাশে ফাঁস দিতে চান, যাতে আপনি পরবর্তী ফ্লাইটটি বেছে নিতে পারেন!)

যাইহোক, একটি সম্ভাব্য ফ্লাইট পরিবর্তন করে, আমি সম্পূর্ণ কলামটি আপডেট করতে যাচ্ছি, কারণ পরবর্তী ফ্লাইটটি নেওয়ার ফলে পরবর্তী ফ্লাইটগুলি সম্ভবত সম্ভব হবে না।

যে আমার প্রশ্নে বাড়ে - এটি সম্ভব একটি জটিল viewmodel দ্বারা jQuery মাধ্যমে নিয়ামক ফিরে? এটা আংশিক মতামত ব্যবহার করে যা foreach loops মধ্যে নেস্টেড করা যাবে? আমি যা করতে চাই তা হল এজেক্স এর মাধ্যমে কলামটি আপডেট করা, কিন্তু আমি দেখতে পারি কিভাবে ভিউমোডেল ব্যাক পাস করতে হয়। আমি একটি পূর্ণ পৃষ্ঠা পুনরায় লোড করা এড়াতে চেষ্টা করছি কারণ এটি একটি কঠিন অনুসন্ধান হবে তাই AJAX আপডেট আদর্শ হবে

এই প্রক্রিয়াটির জন্য কিছু কাট-ডাউন কোড রয়েছে:

দেখার জন্য কোড (index.cshtml) - jQuery এখানে মূল ভিউতে পাওয়া যায়

@foreach (var item in Model)
{
    <div id="[email protected]">
        @Html.Partial("_JourneyColumnPartial", item)
    </div>
}

<script type="text/javascript">
    $(".flightItem").change(function (event) {
        alert(event.target.id);
        var cSelected = $(this).val();
        alert(cSelected);
        $.ajax({
            url: "/Search/GetChangeInfo",
            contentType: "application/json",
            type: "POST",
            dataType: "json",
            data: ({ cID: cSelected }),
            success: function (display) {
            }
        });
    });
</script>

প্রথম আংশিক দৃশ্যের কোড (_JourneyColumnPartial.cshtml)

<div class="routeContainer">
    @Html.Partial("_ColumnItemPartial", Model)
</div>  

শিশু আংশিক দৃশ্যের কোড (_ColumnItemPartial.cshtml)

@{
    int journeyNumber = 1;
}
@foreach (var journey in Model.SelectedJourneys)
{
    List list = Model.Journeys.Where(j => j.JourneyDateAndTimeID != journey && j.DepartureID == hub.DepartureID && j.ArrivalID == hub.ArrivalID).OrderBy(j => j.JourneyDateAndTime).ToList();
    <div class="box">
        <div class="journeytimes">
            Depart @hub.DepartureDate
Arrive @hub.ArrivalDate
</div> <div class="boxcontrols"> </div> <!-- end of box --> </div> journeyNumber++; <!-- end of box wrap --> }

আমি জানি আমি ViewModel সম্পর্কে বিস্তারিত অন্তর্ভুক্ত করে নি, তবে এটি বেশ জটিল এবং অন্যান্য ক্লাসগুলির জেনেরিক তালিকা অন্তর্ভুক্ত করে যাতে এটি বেশ বড় হয়। AJAX/jQuery এর ট্রিগারটি ড্রপডাউন তালিকাটির পরিবর্তনের ঘটনা।

যদি এই না কোন অর্থে তোলে, বলতে বিনামূল্যে এবং আমি চেষ্টা এবং আমি কি খুঁজছেন তা স্পষ্ট করব!

ধন্যবাদ

0
যোগ সম্পাদিত
মতামত: 1

2 উত্তর

আপনার jQuery কলজে json হিসাবে আপনার ডেটা পাঠানো সম্ভব।

আপনি কেবল আপনার ViewModel মত একটি জাভাস্ক্রিপ্ট বস্তু তৈরি করে, এবং Json.Stringify পদ্ধতি দ্বারা স্ট্রিং মান এবং ডেটা </কোড> মধ্যে স্ট্রিং মান সেট করে যে জাভাস্ক্রিপ্ট বস্তু রূপান্তর দ্বারা এটি অর্জন করতে পারেন AJAX কল

1
যোগ
ঠিক আছে, যে আকর্ষণীয় শব্দ আপনি কিভাবে যে সম্পর্কে যেতে পারে - আপনি জাভাস্ক্রিপ্ট বস্তুর ম্যানুয়ালি প্রতিটি ক্ষেত্র তৈরি করতে হবে? ভিউ মডিলে উপ-শ্রেণী সম্পর্কে কি - তাদের কি নিজেও তৈরি করা উচিত?
যোগ লেখক e-on, উৎস
হ্যাঁ আপনি ম্যানুয়ালি প্রতিটি ক্ষেত্র তৈরি করতে হবে, যতদূর subclasses উদ্বেগ আপনি একটি একক বস্তুর subclass এবং প্যারেন্ট বর্গ উভয়ের বৈশিষ্ট্য তৈরি করতে হবে। ক্ষেত্র ক্ষেত্রের সিরিয়ালাইজেশন এর ক্ষেত্রে আসে।
যোগ লেখক Asif Mushtaq, উৎস

I'm not sure if your issue is with sending the data or returning it but this will help you with returning it via ajax: http://www.klopfenstein.net/lorenz.aspx/render-partial-view-to-string-in-asp-net-mvc

0
যোগ
ধন্যবাদ - এটি এখনো পাওয়া যায়নি, কিন্তু এটি সহজেই আসতে পারে :)
যোগ লেখক e-on, উৎস