-1

I'm writing script in literal from code behind

string script = "<script type=\"text/javascript\">var ServiceProviderEmail = new Array();";
            for (int i = 0; i < dsEmailDetails.Tables[3].Rows.Count; i++)
            {
                script += "var objServiceProvider = new Object();";
                script += "objServiceProvider.ServiceProviderId = " + dsEmailDetails.Tables[3].Rows[i]["ServiceProviderId"].ToString() + ";";
                script += "objServiceProvider.Name = '" + dsEmailDetails.Tables[3].Rows[i]["FirstName"].ToString() + " " + dsEmailDetails.Tables[3].Rows[i]["LastName"].ToString() + "';";
                script += "objServiceProvider.Email = '" + dsEmailDetails.Tables[3].Rows[i]["Email"].ToString() + "';";
                script += "objServiceProvider.FaxNumber = '" + dsEmailDetails.Tables[3].Rows[i]["FaxNumber"].ToString() + "';";
                script += "ServiceProviderEmail.push(objServiceProvider);";
            }

And output I'm getting is like

var ServiceProviderEmail = new Array();var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4820;objServiceProvider.Name = 'Timothy Collins';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '(888) 846-6037';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4821;objServiceProvider.Name = 'James Houston';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '(972) 681-2376';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4822;objServiceProvider.Name = 'Christianah Okunade';objServiceProvider.Email = 'platinumhs@msn.com';objServiceProvider.FaxNumber = '';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4823;objServiceProvider.Name = 'Lorna Ferguson';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '(972) 293-2056';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4824;objServiceProvider.Name = 'Harold Delasalas';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '(866) 700-8688';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4825;objServiceProvider.Name = 'Eliazar Alvarez';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '(972) 780-5774';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4826;objServiceProvider.Name = 'Eric Nadler';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '(214) 370-1085';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4827;objServiceProvider.Name = 'Jayaprakash Narayana';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '(469) 899-6586';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4828;objServiceProvider.Name = 'Jagannath Chittimoori';objServiceProvider.Email = 'chittimoorijagannath@gmail.com';objServiceProvider.FaxNumber = '';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4829;objServiceProvider.Name = 'Joyce Chibueze';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4830;objServiceProvider.Name = 'Avian Kidd';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '(214) 761-8812';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4831;objServiceProvider.Name = 'Elham Jamalabadi';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '(903) 408-7807';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4832;objServiceProvider.Name = 'Nat Cheeks';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4833;objServiceProvider.Name = 'Murray Strauss';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '(972) 709-1782';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4834;objServiceProvider.Name = 'Sola Akingbade';objServiceProvider.Email = 'akingbaderemi@gmail.com';objServiceProvider.FaxNumber = '';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4835;objServiceProvider.Name = 'Vincent Chukwu';objServiceProvider.Email = 'chukwu@mail2vince.com';objServiceProvider.FaxNumber = '';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4836;objServiceProvider.Name = 'Adeola Amusan';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4837;objServiceProvider.Name = 'Howard Anderson';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '(214) 943-8213';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4838;objServiceProvider.Name = 'Odette Campbell';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '(972) 695-8827';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4839;objServiceProvider.Name = 'Aitazaz Shah
';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4840;objServiceProvider.Name = 'Alfred
 Zevallos
';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4841;objServiceProvider.Name = 'Berto Zamora';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '(214) 879-7808';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4842;objServiceProvider.Name = 'Jiaul Ahsan';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '(888) 846-6037';ServiceProviderEmail.push(objServiceProvider);var objServiceProvider = new Object();objServiceProvider.ServiceProviderId = 4843;objServiceProvider.Name = 'Alma
 Horrilleno
';objServiceProvider.Email = '';objServiceProvider.FaxNumber = '';ServiceProviderEmail.push(objServiceProvider);

which is giving and error. How can i add custom line breaks in script from code behind?

ZP Baloch
  • 402
  • 7
  • 19
  • `which is giving and error` <= be more specific, we can't just guess what the error is. Is it an exception or a compile time error? What is the message? What is the type? On what line does it occur? When does it occur? What is the stack trace? Is it a script error in the browser? Does it occur server side? – Igor Nov 06 '17 at 10:41
  • "Uncaught SyntaxError: Invalid or unexpected token" as my question say line break issue and you can see in out put that new line isn't properly starting – ZP Baloch Nov 06 '17 at 10:48
  • You should use a View / PartialView. This is too open to abuse. Assuming a user enters the values, they could enter: `';location.href='http://stackverflow.com';`. – freedomn-m Nov 06 '17 at 10:54

2 Answers2

1

It seems, that in one of your names (maby in Aitazaz Shah) is a '-sign, that destroys your code. for security you have to replace it like dsEmailDetails.Tables[3].Rows[i]["FirstName"].ToString().Replace("'", "\'"). better solution is, to create your array with objects in c# and stringify it via newtonsoft json and write <script type=\"text/javascript\">var ServiceProviderEmail = JSON.parse('" + NewtonsoftJsonString + "')</script>

wendt88
  • 544
  • 5
  • 22
  • is there a way i can add custom line breaks after each line? – ZP Baloch Nov 06 '17 at 11:04
  • I have to ask - why does your user's names have line breaks ("custom" (whatever that means) or otherwise)? – freedomn-m Nov 06 '17 at 11:08
  • ok i was wrong. I though this issue is generating due to length of first line due to which it breaks at that point. @wendt88 is right. But it doesn't have ' . Last name have a new line character saved in it. Now how can i replace that – ZP Baloch Nov 06 '17 at 11:32
  • https://stackoverflow.com/questions/238002/replace-line-breaks-in-a-string-c-sharp But keep in mind, that you have to replace all special chars, so by creating an array and converting it to a JSON string is safer – wendt88 Nov 06 '17 at 13:46
0

some names have line breaks in there names that's lines were breaking wrongly.

script += "objServiceProvider.Name = '" + dsEmailDetails.Tables[3].Rows[i]["FirstName"].ToString().trim() + " " + dsEmailDetails.Tables[3].Rows[i]["LastName"].ToString().trim() + "';";
ZP Baloch
  • 402
  • 7
  • 19