SiVaBHC Ответов: 1

Запрет обрезки пробелов между словами в веб-сервисах при отображении в браузере


У меня есть приведенный ниже код, используемый в веб-сервисах.

using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;

    namespace StringTest
    {
       /// <summary>
       /// Summary description for StringTest
       /// </summary>
       [WebService(Namespace = "http://tempuri.org/")]
       [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
       [System.ComponentModel.ToolboxItem(false)]
       // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
       // [System.Web.Script.Services.ScriptService]
       public class StringTest : System.Web.Services.WebService
       {

           [WebMethod]

           public string HelloWorld(string str)
           {
               return str;
           }
       }
    }





When I provide the input as "Hello         world", I'm getting the result as Hello world (Nine spaces between the words has been reduced to one).



How can i Prevent trimming spaces between words in webservices?


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

using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;

    namespace StringTest
    {
       /// <summary>
       /// Summary description for StringTest
       /// </summary>
       [WebService(Namespace = "http://tempuri.org/")]
       [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
       [System.ComponentModel.ToolboxItem(false)]
       // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
       // [System.Web.Script.Services.ScriptService]
       public class StringTest : System.Web.Services.WebService
       {

           [WebMethod]

           public string HelloWorld(string str)
           {
               return str;
           }
       }
    }

F-ES Sitecore

Как предположил OriginalGriff, вы можете заменить пробелы неразрывными, но вы должны убедиться, что заменяются только двойные пробелы, если вы замените все пробелы на то, что текст никогда не будет заключен в контейнер, он будет застрять на одной строке. Кроме того, может возникнуть соблазн сделать эту замену в вашем веб-методе HelloWorld, но этот метод всегда должен возвращать необработанный текст, и если для его отображения необходимо выполнить какое-либо преобразование этого текста, то эта работа должна выполняться на уровне презентации, а веб-метод не должен этого делать.

1 Ответов

Рейтинг:
0

OriginalGriff

Это "особенность" HTML: пробелы всегда обрезаются.
Однако вы можете заменить пробелы символами "non blank space": &nbsp;

Hello&nbsp;&nbsp;&nbsp;&nbsp;World
Становится
Hello    World