आपको IHtmlString
इसके बजाय उपयोग करना चाहिए :
IHtmlString str = new HtmlString("<a href="/Home/Profile/seeker">seeker</a> has applied to <a href="/Jobs/Details/9">Job</a> floated by you.</br>");
जब भी आपके पास मॉडल गुण या वैरिएबल होते हैं जिन्हें HTML रखने की आवश्यकता होती है, तो मुझे लगता है कि यह आम तौर पर एक बेहतर अभ्यास है। सबसे पहले, यह थोड़ा क्लीनर है। उदाहरण के लिए:
@Html.Raw(str)
की तुलना में:
@str
इसके अलावा, मुझे भी लगता है कि यह थोड़ा सुरक्षित बनाम उपयोग करने वाला है @Html.Raw()
, क्योंकि आपका डेटा HTML आपके नियंत्रक में रखा गया है, इस बात की चिंता है। ऐसे वातावरण में जहां आपके सामने के बैक-एंड डेवलपर्स हैं, आपके बैक-एंड डेवलपर्स एचटीएमएल मूल्यों को किस डेटा के साथ जोड़ सकते हैं, इस प्रकार इस चिंता को बैक-एंड (कंट्रोलर) में बनाए रख सकते हैं।
मैं आमतौर पर Html.Raw()
जब भी संभव हो उपयोग करने से बचने की कोशिश करता हूं ।
एक और बात ध्यान देने योग्य है, क्या मुझे यकीन नहीं है कि आप कहां असाइन कर रहे हैं str
, लेकिन कुछ चीजें जो मुझे इस बात से चिंतित करती हैं कि आप इसे कैसे लागू कर सकते हैं।
सबसे पहले, यह आपके समाधान ( IHtmlString
या Html.Raw
) की परवाह किए बिना, एक नियंत्रक में किया जाना चाहिए । आपको अपने विचार में इस तरह के किसी भी तर्क से बचना चाहिए, क्योंकि यह वास्तव में वहां नहीं है।
इसके अतिरिक्त, आपको ViewModel
अपने विचार (और फिर से, आदर्श IHtmlString
रूप से संपत्ति प्रकार के रूप में उपयोग करने के लिए) मान प्राप्त करने के लिए आपका उपयोग करना चाहिए । @Html.Encode(str)
जब तक आप अपने उदाहरण को सरल बनाने के लिए ऐसा नहीं कर रहे हैं, तब तक कुछ देखना पसंद है।
Html.Raw
मदद करनी चाहिए।