मेरे पास एक ऐसा दृश्य है जो टिप्पणियों की एक सूची प्रदर्शित करता है। यह DisplayTemplate के माध्यम से करता है। मुझे बस इतना करना है जैसे @Html.DisplayFor(x => x.BlogPost.PostComments)
और सभी टिप्पणियां उचित रूप से प्रस्तुत करती हैं।एमवीसी 3 - आप एक कार्य विधि से एक प्रदर्शन टेम्पलेट कैसे वापस करते हैं?
एक नई टिप्पणी जोड़ने के लिए पृष्ठ के नीचे एक फॉर्म है। यह पृष्ठ प्रगतिशील वृद्धि का उपयोग करता है। इसलिए यदि जावास्क्रिप्ट अक्षम है तो फॉर्म सामान्य की तरह सबमिट करता है, डेटाबेस को टिप्पणी जोड़ता है, फिर ब्लॉग पोस्ट को प्रस्तुत करने वाली कार्रवाई पर रीडायरेक्ट करता है। हालांकि, यदि जावास्क्रिप्ट उपलब्ध है तो jQuery फॉर्म के सबमिट को हाइजैक करता है और पोस्ट को AJAX के माध्यम से बनाता है। ठीक है क्योंकि टिप्पणी मार्कअप एक डिस्प्ले टेम्पलेट में है, मुझे नहीं पता कि इसे एक्शन विधि से कैसे वापस किया जाए ताकि jQuery इसे पृष्ठ पर छोड़ सके।
मुझे पता है कि आंशिक विचारों के साथ इसे कैसे किया जाए। मेरे पास केवल कार्रवाई विधि सही आंशिक दृश्य लौटाएगी और jquery पृष्ठ पर टिप्पणी कंटेनर को प्रतिक्रिया जोड़ देगा।
आंशिक दृश्य के पक्ष में मेरे प्रदर्शन टेम्पलेट को बंद करने से पहले, क्या कोई सीधा आगे तरीका है कि मैं नियंत्रक से डिस्प्ले टेम्पलेट वापस भेजने के लिए अनुपलब्ध हूं?
यहाँ मेरी कार्रवाई विधि है:
public ActionResult AddComment(PostComment postComment)
{
postComment.PostedDate = DateTime.Now;
postCommentRepo.AddPostComment(postComment);
postCommentRepo.SaveChanges();
if (Request.IsAjaxRequest())
return ???????
else
return RedirectToAction("BlogPost", new { Id = postComment.BlogPostID });
}
पृष्ठ लोड क्योंकि यह मानक तरीके से टेम्प्लेट का उपयोग किया इसके बारे में चिंता की जरूरत नहीं है जब:
<div class="comments">
@Html.DisplayFor(x => x.BlogPost.BlogPostComments)
</div>
मैं बस चाहता हूँ यह जानने के लिए कि मैं एक टिप्पणी कैसे भेज सकता हूं जो प्रदर्शन टेम्पलेट का उपयोग jQuery पर वापस करता है।
यह जवाब है, हालांकि यह पूरे विचार hackish है। मैं बस इस पर आंशिक दृश्य के साथ फंस गया। लेकिन फिर भी जवाब के लिए धन्यवाद। – Chev