اکشن همراه با خروجی رشته (String)

آموزش MVC –> جلسه اول –> قسمت ششم

همراهان وب سایت محتوا ، در مقاله قبلی دیدیم که چگونه می توان یک تابعی را به اکشن تبدیل کرد و یا تابعی را از حالت اکشن بودن خارج کرد و نیز چگونه نام اکشن را تغییر دهیم .

خروجی رشته (string) برای اکشن (action) :

در این مقاله قصد داریم برای اکشن ها خروجی رشته تعریف کنیم . پس دیگر قبل از نام تابع void نداریم و string مینویسیم :

     public string Learn1110()
        {
            return ("Mohtava.info Website is provided by Safari");
        }

توصیه : برای تعریف خروجی رشته بهتر است نوع خروجی را string نگذاریم و System.Web.Mvc.ContentResult قرار دهیم :

     public System.Web.Mvc.ContentResult Learn1120()
        {
            return (Content("Mohtava.info Website is provided by Safari"));
        }

خروجی هر دو اکشن یکی است . اگر مطمئن باشیم خروجی تابع ، رشته است میتوان از مثال فوق استفاده کرد وگرنه در صورتی که خروجی تابع مشخصا رشته نباشد یعنی شاید نوع دیگری باشد باید خروجی اکشن را بصورت System.Web.Mvc.ActionResult تعریف کنیم .

در ضمن می توانیم در رشته خروجی تگ html نیز بنویسیم :

     public System.Web.Mvc.ContentResult Learn1140()
        {
            return (Content("<b>EhsanSafari.com</b>"));
        }

پیام خطایی نمی دهد ولی از لحاظ امنیتی وب سایت را دچار تهدید می کند . برای جلوگیری از این مشکل امنیتی باید از Server.HtmlEncode استفاده کنیم :

      public System.Web.Mvc.ContentResult Learn1150()
         {
            string strContent =
                Server.HtmlEncode("<b>EhsanSafari.com</b>");

            return (Content(strContent));
        }

شایان ذکر است که HtmlEncode مختص MVC نیست . بلکه در ASP.NET webform نیز وجود داشت.

در مقاله بعدی خواهیم دید که چگونه می توان از یک اکشن به اکشن دیگری ریدایرکت کنیم (مانند Response.Redirect که در webform وجود داشت) . همراه ما باشید …


تاریخ انتشار :۲۴ آذر ۱۳۹۴



دیدگاه ها :