Amith 12807185 Ответов: 1

Как избежать жесткого кодирования использования нескольких состояний представления в C#?


if (ViewState["OfferID"].ToString() == "1063" || ViewState["OfferID"].ToString() == "1717" || ViewState["OfferID"].ToString() == "922" || ViewState["OfferID"].ToString() == "3212"
                 || ViewState["OfferID"].ToString() == "1649" || ViewState["OfferID"].ToString() == "699" || ViewState["OfferID"].ToString() == "1952"
                 || ViewState["OfferID"].ToString() == "2222" || ViewState["OfferID"].ToString() == "2223" || ViewState["OfferID"].ToString() == "2279"
                 || ViewState["OfferID"].ToString() == "2340" || ViewState["OfferID"].ToString() == "2341" || ViewState["OfferID"].ToString() == "2342"
               || ViewState["OfferID"].ToString() == "3736" || ViewState["OfferID"].ToString() == "3714" || ViewState["OfferID"].ToString() == "3657" || ViewState["OfferID"].ToString() == "3319" || ViewState["OfferID"].ToString() == "3318" || ViewState["OfferID"].ToString() == "3651" || ViewState["OfferID"].ToString() == "3650" || ViewState["OfferID"].ToString() == "3649" || ViewState["OfferID"].ToString() == "3639" || ViewState["OfferID"].ToString() == "3596" || ViewState["OfferID"].ToString() == "3549" || ViewState["OfferID"].ToString() == "3548" || ViewState["OfferID"].ToString() == "3492" || ViewState["OfferID"].ToString() == "3340" || ViewState["OfferID"].ToString() == "3341" || ViewState["OfferID"].ToString() == "3274" || ViewState["OfferID"].ToString() == "3173" || ViewState["OfferID"].ToString() == "3144" || ViewState["OfferID"].ToString() == "3036" || ViewState["OfferID"].ToString() == "2727" || ViewState["OfferID"].ToString() == "2704" || ViewState["OfferID"].ToString() == "2280" || ViewState["OfferID"].ToString() == "2970" || ViewState["OfferID"].ToString() == "2473" || ViewState["OfferID"].ToString() == "2297" || ViewState["OfferID"].ToString() == "2427" || ViewState["OfferID"].ToString() == "2460")
            {
                trustedFormScript = "<script type='text/javascript'>";
                trustedFormScript = trustedFormScript + "(function() {";
                trustedFormScript = trustedFormScript + "var field = 'xxTrustedFormCertUrl';";
                trustedFormScript = trustedFormScript + "var provideReferrer = false;";
                trustedFormScript = trustedFormScript + "var tf = document.createElement('script');";
                trustedFormScript = trustedFormScript + "tf.type = 'text/javascript'; tf.async = true; ";
                trustedFormScript = trustedFormScript + "tf.src = 'http' + ('https:' == document.location.protocol ? 's' : '') + '://api.trustedform.com/trustedform.js?provide_referrer=' + escape(provideReferrer) + '&field=' + escape(field) + '&l='+new Date().getTime()+Math.random();";
                trustedFormScript = trustedFormScript + "var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(tf, s); }";
                trustedFormScript = trustedFormScript + ")();function trustedFormCertUrlCallback(certificateUrl) {";
                trustedFormScript = trustedFormScript + "$.get('savetrustedform.aspx?url=' + certificateUrl + '&oid=" + ViewState["OfferID"].ToString() + "&email=" + emailad + "', function(data) { });}";
                trustedFormScript = trustedFormScript + "</script>";
            }


Что я уже пробовал:

Привет, ребята, мне дали этот код ViewState["OfferID"], жестко закодированный для каждого предложения в блоке "if". В коде у меня есть 4 таких оператора 'if' с несколькими Viewstate, чей идентификатор предложения жестко закодирован. Мне сказали удалить эти жесткие коды и сделать их общими. Я просмотрел это и нашел один вариант хранения этих offerIds в одном viewstate. Есть ли какие-то другие варианты, чтобы попробовать. Я новичок в разработке .net, поэтому, пожалуйста, поделитесь некоторыми знаниями о вас.

1 Ответов

Рейтинг:
12

Er. Puneet Goel

Используйте следующий код для упрощения проверки:

string IDs = "1063,1717,922";
       string OfferID = ViewState["OfferID"].ToString();
       if (IDs.Split(',').Contains(OfferID))
       {
           trustedFormScript = "&lt;script type='text/javascript'>";
           trustedFormScript = trustedFormScript + "(function() {";
           trustedFormScript = trustedFormScript + "var field = 'xxTrustedFormCertUrl';";
           trustedFormScript = trustedFormScript + "var provideReferrer = false;";
           trustedFormScript = trustedFormScript + "var tf = document.createElement('script');";
           trustedFormScript = trustedFormScript + "tf.type = 'text/javascript'; tf.async = true; ";
           trustedFormScript = trustedFormScript + "tf.src = 'http' + ('https:' == document.location.protocol ? 's' : '') + '://api.trustedform.com/trustedform.js?provide_referrer=' + escape(provideReferrer) + '&field=' + escape(field) + '&l='+new Date().getTime()+Math.random();";
           trustedFormScript = trustedFormScript + "var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(tf, s); }";
           trustedFormScript = trustedFormScript + ")();function trustedFormCertUrlCallback(certificateUrl) {";
           trustedFormScript = trustedFormScript + "$.get('savetrustedform.aspx?url=' + certificateUrl + '&oid=" + ViewState["OfferID"].ToString() + "&email=" + emailad + "', function(data) { });}";
           trustedFormScript = trustedFormScript + "&lt;/script>";
       }


Amith 12807185

Большое спасибо, Пунит. Теперь все кажется таким простым.

Er. Puneet Goel

Добро пожаловать :)