2011-01-13 12 views
11

यहाँ एक उदाहरण विधि है मुझे लगता है कि मेरे ऐप से एक रिकार्ड को हटा देता है:ASP.NET MVC दिखाएँ सफलता संदेश

[Authorize(Roles = "news-admin")] 
public ActionResult Delete(int id) 
{ 
    var ArticleToDelete = (from a in _db.ArticleSet where a.storyId == id select a).FirstOrDefault(); 
    _db.DeleteObject(ArticleToDelete); 
    _db.SaveChanges(); 

    return RedirectToAction("Index"); 
} 

मुझे क्या करना चाहते हैं ऐसा ही कुछ कहते हैं सूचकांक दृश्य पर एक संदेश दिखाने है : "Lorem ipsum आलेख हटा दिया गया है" मैं यह कैसे करूँगा? धन्यवाद

यहाँ मेरे वर्तमान सूचकांक विधि है, अगर:

// INDEX 
    [HandleError] 
    public ActionResult Index(string query, int? page) 
    { 
     // build the query 
     var ArticleQuery = from a in _db.ArticleSet select a; 
     // check if their is a query 
     if (!string.IsNullOrEmpty(query)) 
     { 
      ArticleQuery = ArticleQuery.Where(a => a.headline.Contains(query)); 
      //msp 2011-01-13 You need to send the query string to the View using ViewData 
      ViewData["query"] = query; 
     } 
     // orders the articles by newest first 
     var OrderedArticles = ArticleQuery.OrderByDescending(a => a.posted); 
     // takes the ordered articles and paginates them using the PaginatedList class with 4 per page 
     var PaginatedArticles = new PaginatedList<Article>(OrderedArticles, page ?? 0, 4); 
     // return the paginated articles to the view 
     return View(PaginatedArticles); 
    } 
+0

मैं एक nuget पैकेज है कि देखने के लिए (त्रुटि, चेतावनी, जानकारी और सफलता) नियंत्रक से संदेश भेजने में मदद करता है बनाया बूटस्ट्रैप के लिए तैयार है: https://www.nuget.org/पैकेज/बूटस्ट्रैप नोटिफिकेशन/ –

उत्तर

18

एक तरह से TempData उपयोग करने के लिए होगा:

[Authorize(Roles = "news-admin")] 
public ActionResult Delete(int id) 
{ 
    var ArticleToDelete = (from a in _db.ArticleSet where a.storyId == id select a).FirstOrDefault(); 
    _db.DeleteObject(ArticleToDelete); 
    _db.SaveChanges(); 
    TempData["message"] = ""Lorem ipsum article has been deleted"; 
    return RedirectToAction("Index"); 
} 

और Index कार्रवाई के अंदर आप TempData से इस संदेश को लाने सकता है और इसका उपयोग करें। उदाहरण के लिए यदि आप अपने दृश्य मॉडल की एक संपत्ति जो दिखाई देने वाले को दे दिया जाएगा के रूप में इसे पारित कर सकता है इतना है कि यह यह दिखा सकते हैं:

public ActionResult Index() 
{ 
    var message = TempData["message"]; 
    // TODO: do something with the message like pass to the view 
} 

अद्यतन:

उदाहरण:

public class MyViewModel 
{ 
    public string Message { get; set; } 
} 

और उसके बाद:

public ActionResult Index() 
{ 
    var model = new MyViewModel 
    { 
     Message = TempData["message"] as string; 
    }; 
    return View(model); 
} 

और दृढ़ता से टाइप किया दृश्य के अंदर:

<div><%: Model.Message %></div> 
+0

ठीक है दिलचस्प लगता है। 1.) मैं इसे दृश्य में कैसे पास करूं? 2.) फिर मैं इसे दृश्य में कैसे दिखाऊं। धन्यवाद :) – Cameron

+0

आप एक स्ट्रिंग प्रॉपर्टी के साथ व्यूमोडेल को परिभाषित करते हैं जो इस संदेश को सौंपा जाएगा। फिर आप दृढ़ता से इस दृश्य मॉडल पर अपना विचार टाइप करें और दृश्य के अंदर आप बस '<%: Model.Message%> 'का उपयोग करें। या आप कंट्रोलर एक्शन 'व्यूडाटा ["संदेश"] = संदेश;' और दृश्य के अंदर बहुत बदसूरत करते हैं: '<%: व्यूडेटा ["संदेश"]%> '(मैं दोहराता हूं यह बदसूरत है और मैं नहीं करता इसकी अनुशंसा करें, व्यूडाटा बस बेकार है)। –

+0

मैं व्यूमोडेल को समझ नहीं पा रहा हूं और दृढ़ता से टाइप कर रहा हूं। क्या आप ऊपर दिए गए कोड में एक उदाहरण दिखा सकते हैं? धन्यवाद। – Cameron