प्रस्तुत नहीं कर रहा है मैं एमवीसी के लिए बहुत नया हूं और एमवीसी 4 में मौजूदा साइट को पोर्ट करने का प्रयास करते समय इस समस्या में भाग गया हूं।एमवीसी 4 व्यू कंट्रोलर से कॉम्प्लेक्स ऑब्जेक्ट पास कर रहा है, नया दृश्य
हम उन मॉडलों का उपयोग कर रहे हैं जहां अधिकांश डेटा सेवा कॉल द्वारा पॉप्युलेट किया जाता है, इसलिए स्पष्ट रूप से हम कॉल को न्यूनतम रखना चाहते हैं। समस्या यह है कि जब मैं मॉडल को वापस नियंत्रक को पास करने का प्रयास करता हूं, तो मॉडल के भीतर जटिल वस्तुएं हमेशा शून्य हो जाती हैं। मैं AJAX का उपयोग कर नियंत्रक को वापस कॉल पर डेटा को जारी रखने में सक्षम हूं; हालांकि, मुझे एक नया दृश्य वापस करने के लिए कार्रवाई की आवश्यकता है, और कार्रवाई पूर्ण होने के बाद, दृश्य के लिए कोड निष्पादित होता है, लेकिन कोई रीडायरेक्ट नहीं होता है (जो मुझे लगता है कि AJAX का बिंदु है, मुझे लगता है कि मैं जो पूछ रहा हूं वह है समाधान जो डेटा को उसी तरह जारी रखेगा लेकिन वास्तव में रीडायरेक्ट करेगा)।
public class DistributionModel
{
public string typeOfDistribution { get; set; }
public Document document { get; set; }
public string thumbnailUrl { get; set; }
public MergeFieldModel mergeFields { get; set; }
}
public class MergeFieldModel
{
public MergeFields documentMergeFields { get; set; }
}
यहाँ नियंत्रक कार्रवाई मैं उपयोग कर रहा हूँ है:
public ActionResult Index(DistributionModel distributionModel)
{
distributionModel.mergeFields = new MergeFieldModel() { documentMergeFields = MergeFieldsHelper.GetDocumentMergeFields(distributionModel.document.Id) };
return View("Index", distributionModel);
}
मैं एक [email protected] ("सूचकांक", मॉडल) उपयोग करने की कोशिश के बजाय
यहाँ मेरी मॉडल है नियंत्रक को कॉल करने के लिए नीचे दिए गए ब्लॉक में बटन का और रीडायरेक्ट करने के लिए (रीडायरेक्ट ने स्वयं काम किया था, लेकिन मुझे उसी दस्तावेज़ को पुनर्प्राप्त करने के लिए नियंत्रक के भीतर एक और सेवा कॉल करना पड़ा क्योंकि मैं कॉलिंग व्यू से काम कर रहा था) क्योंकि मॉडल के भीतर दस्तावेज़ ऑब्जेक्ट सी के रूप में वापस करने के रूप में वापस रखा रखा ontroller।
यहां दृश्य का हिस्सा है जो नियंत्रक को बुला रहा है और वास्तव में पूरा मॉडल देता है: मुझे लगता है कि मैं जो खोज रहा हूं वह AJAX के बिना इसे पूरा करने का एक तरीका है ताकि मैं वितरण/अनुक्रमणिका पर रीडायरेक्ट प्राप्त कर सकूं पेज (इस वितरण/DocumentDetails पेज से निकाल दिया जाता है)
<button id="EmailDistribution" data-corners="false" data-theme="a">EMAIL</button>
$('#EmailDistribution').click(function() {
var model = @Html.Raw(Json.Encode(Model));
$.ajax({
url: '@Url.Action("Index", "Distribution")',
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(model),
processData: false,
});
});
धन्यवाद, किसी भी मदद की बहुत सराहना की जाएगी।
आप 'वितरण/दस्तावेज़ विवरण 'की अंतिम पंक्ति के रूप में' रीडायरेक्ट टॉएक्शन (" इंडेक्स ", वितरण मॉडल) क्यों वापस कर सकते हैं? – Suhas
दस्तावेज़ विवरण कार्रवाई दस्तावेज़ विवरण दृश्य देता है। इसके अतिरिक्त, मैंने नियंत्रक विधियों में से एक से RedirectToAction करने का प्रयास किया, और पाया कि यह दस्तावेज़ ऑब्जेक्ट को अन्य क्रियाओं को NULL के रूप में पास कर दिया। – gutsmania