/ / एमवीसी व्यू के अंदर नियंत्रण सत्र चर - एएसपीनेट-एमवीसी, सत्र, बूटस्ट्रैप-मोडल

MVC दृश्य के अंदर नियंत्रण सत्र चर - asp.net-mvc, सत्र, बूटस्ट्रैप-मोडल

मैं एमवीसी एप्लीकेशन विकसित कर रहा हूं जहां लोग साइन अप कर सकते हैं। साइन अप करने के बाद, एक पेज बूटस्ट्रैप मोडल का उपयोग करके पुष्टिकरण संदेश प्रदर्शित करेगा। मोडल दृश्य पर ब्लॉक पहले सत्र चर की जांच कर रहा है, यदि सत्र शून्य नहीं है, तो इसे प्रदर्शित किया जाएगा:

@if (Session["signUpName"] != null)
{
<!-- Modal start -->
<script type="text/javascript">
$(window).load(function(){
$("#signUpModal").modal("show");
});
</script>
<div class="modal fade" id="signUpModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-    dismiss="modal">&times;</button>
<h4 class="modal-title">Registration Confirmation</h4>
</div>
<div class="modal-body">
<p>Dear @Session["signUpName"]</p>
<p>Thank you ......</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data- dismiss="modal">Close</button>
</div>
</div>

</div>
</div>
<!-- Modal end -->
}

मेरा मुद्दा साइन अप करने के बाद है, मैं मोडल विंडो से छुटकारा नहीं पा सकता !! मैंने सत्र को बिना किसी किस्मत के अगर कथन के अंदर शून्य के बराबर बनाने की कोशिश की।

कोई विचार?

उत्तर:

जवाब के लिए 0 № 1

इसके लिए सत्र का उपयोग न करें।एमवीसी का पूरा बिंदु आपके विचारों के लिए मॉडल का उपयोग करना है। तो, दृश्य के लिए आपको जो भी डेटा चाहिए उसे रखने के लिए मॉडल क्लास बनाएं। जिस क्षण आप सत्र का उपयोग करना शुरू करते हैं और इसे साफ़ करने के बारे में सोचते हैं, आप एमवीसी से जितना दूर हो सकते हैं उतना दूर चले गए हैं। यह वेबफॉर्म या क्लासिक एएसपी नहीं है, आपको एक अलग तरीके से सोचने की जरूरत है।

तो, आप सत्र मूल्यों से अपना मॉडल बना सकते हैं। यदि आपको सत्र को साफ़ करने की आवश्यकता है, तो दृश्य लोड करने से पहले इसे नियंत्रक में करें। अपने विचार को यथासंभव गूंगा और यथासंभव सरल रखें।

public class UserModel {
public string Username { get set }
}

नियंत्रक में आप मॉडल को पॉप्युलेट करने का ख्याल रखते हैं

public ActionResult SomeAction()
{
model = new UserModel { Username = Session["someSession"] == null ? "" : Session["someSession"].ToString() }

return View(model);
}

आपके विचार में मैं उस तरह से रेजर और जावास्क्रिप्ट को नहीं जोड़ूंगा। आप किसी मॉडल से JavaScript वैरिएबल को मान असाइन कर सकते हैं

तो, जावास्क्रिप्ट में आप ऐसा कुछ कर सकते हैं:

var username = "@Model.Username";

अब आप अपने जेएस कोड के साथ जारी रख सकते हैं और जांच सकते हैं कि आपके पास कोई मूल्य है या नहीं।