سؤال

أقوم بتحميل طريقة عرض جزئية مع مكالمة Ajax:

public ActionResult LoadServerForm()
        {
            //data stuff

            ViewData["ApplicationID"] = appID.ToString();
            ViewData["Servers"] = ServersList(appServerRep.Session, null, appServers);
            return PartialView("Application_AddServer");
        }

هذا يعمل بشكل رائع ، لكنني أحاول الابتعاد عن سلاسل Magic ViewData. حاولت جعل العرض الجزئي يرث من نفس العرض مثل صفحة "الاستضافة" ، لكن كائن النموذج لاغير عندما أحاول ذلك في العرض الجزئي:

<%= Html.HiddenFor(model=>model.Application_Key, Model.Application_Key) %>

هل هناك طريقة لتمرير Page ViewModel الرئيسية لأسفل إلى PartialView المحملة Ajax أو هل يجب أن أبحث عن نهج مختلف تمامًا؟

هل كانت مفيدة؟

المحلول

عندما انت return PartialView("Application_AddServer");, ، عليك تمرير النموذج:

return PartialView("Application_AddServer", model);

نظرًا لأن هذا طلب Ajax ، فهو عبارة عن دعوة منفصلة عن إجراء تحكم ، ولا يعرف PartialView الجديد عن نموذج الصفحة المطلوبة. سيتعين عليك إعادة بنائه ، إما من أي مصدر بيانات أصلي أو من البيانات التي تم تمريرها باستخدام طلب AJAX.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top