Ответы Ajax jQuery в ASP.NET MVC

Если Вы просто хотите передать std::string к функции, для которой нужно const char*, можно использовать

std::string str;
const char * c = str.c_str();

, Если Вы хотите получить перезаписываемую копию, как char *, можно сделать это с этим:

std::string str;
char * writable = new char[str.size() + 1];
std::copy(str.begin(), str.end(), writable);
writable[str.size()] = '\0'; // don't forget the terminating 0

// don't forget to free the string after finished using it
delete[] writable;

Редактирование : Заметьте, что вышеупомянутое не является безопасным исключением. Что-нибудь между эти new вызов и delete броски вызова, при утечке памяти поскольку ничто не призовет delete к Вам автоматически. Существует два непосредственных способа решить это.

повышение:: scoped_array

boost::scoped_array удалит память для Вас после выхода из объема:

std::string str;
boost::scoped_array writable(new char[str.size() + 1]);
std::copy(str.begin(), str.end(), writable.get());
writable[str.size()] = '\0'; // don't forget the terminating 0

// get the char* using writable.get()

// memory is automatically freed if the smart pointer goes 
// out of scope

станд.:: вектор

Это - стандартный путь (не требует никакой внешней библиотеки). Вы используете std::vector , который полностью управляет памятью для Вас.

std::string str;
std::vector writable(str.begin(), str.end());
writable.push_back('\0');

// get the char* using &writable[0] or &*writable.begin()

5
задан Robert Koritnik 27 November 2010 в 11:08
поделиться

3 ответа

Прежде всего, если вы хотите, чтобы вызов AJAX возвращал данные, которые вы планируете использовать в своих сценариях (и под использованием я имею в виду нечто более сложное, чем отображение этих данных в div ), вам, вероятно, следует возвращать данные JSON вместо HTML с вашего сервера. JSON на самом деле является объектом JS, поэтому его можно использовать в JS в момент его получения.

Итак, если вы вернете данные, то есть

{id: 1, status: 'ok'}

, вы можете использовать что-то подобное, чтобы использовать эти данные.

$.ajax({
    url: "your/script/url",
    type: "POST",
    data: {login : 'foo', pass: 'bar'}, // whatever the data is
    dataType: "json",
    success: function(data){
        if (data.status === 'ok') {
            console.log('success');
        } else {
            console.log('error');
        }
    }

});

7
ответ дан 18 December 2019 в 13:17
поделиться

Я не уверен полностью ли я понял, что вы имеете в виду. Но ваш пример сообщения о проверке ошибки не будет работать следующим образом:

  1. Пользователь нажимает на какую-то кнопку / ссылку, которая вызывает действие
  2. Сообщение asynchronouse выполняется обратно на сервер, передавая сообщение идентификатор пользователя (здесь вы должны знать о безопасности)
  3. На сервере выполняется необходимая проверка и отправляется ответ (в XML, Json,
0
ответ дан 18 December 2019 в 13:17
поделиться

" Комментарии к документации XML (Руководство по программированию на C #) В Visual C # вы можете создать документацию для своего кода, включив теги XML в специальные поля комментариев в исходном коде непосредственно перед блоком кода, на который они ссылаются. "

http://msdn.microsoft.com/en-us/library /b2s063f7.aspx

затем вы можете использовать Sandcastle для генерации файлов chm, если хотите

http://www.hanselman.com/blog/SandcastleMicrosoftCTPOfAHelpCHMFileGeneratorOnTheTailsOfTheDeathOfNDoc.aspx

-121 --- 14129 ] _cancelled должен быть volatile . (если вы не выбрали блокировку)

Если один поток изменяет значение _cancelled , другие потоки могут не видеть обновленное результат.

Кроме того, я думаю, что операции чтения / записи _cancelled являются атомарными :

Раздел 12.6.6 спецификации CLI гласит: "Соответствующий интерфейс командной строки должен гарантировать, что доступ для чтения и записи к правильному выровненные ячейки памяти не больше чем исходный размер слова атомарен когда все записи обращаются к При рисовании пунктирных линий вы можете варьировать расстояние между штрихами, чтобы убедиться, что у вас никогда не будет частичных четырехугольников на конечных точках. Это может визуально отвлекать, так как расстояние будет регулироваться в зависимости от длины сегмента.

edit:

Ах, картинка помогает. Я предполагаю, что, поскольку это на iPhone, вы получаете серию точек, из которых линии между ними дают приемлемую кривую. Если это так, использование примитивов сплайнов / кривых, вероятно, излишне. Я бы, вероятно, подошел к рисованию линий, как показано, просто путем рисования четырехугольников в каждой точке данных, которая находится на заданном расстоянии от последней точки данных.

Алгоритм будет примерно таким:

  1. Нарисовать четырехугольник на первой точке данных (с соответствующим поворотом)
  2. Перемещайтесь по списку точек, пока не «Я @ 190d11Вы получите нежелательные пробелы в заголовках и полях данных. Хуже того, ", который должен« защищать »этот разрыв строки в третьем столбце, будет проигнорирован, потому что он находится не в начале поля.

    Если у вас есть символы, отличные от ASCII (закодированные в UTF-8) в файле у вас должна быть спецификация UTF-8 (3 байта, шестнадцатеричный EF BB BF ) в начале файла. В противном случае Excel будет интерпретировать данные в соответствии с вашим языковым стандартом по умолчанию. кодировка (например, cp1252) вместо utf-8, и ваши символы, отличные от ASCII, будут удалены.

    Следующие комментарии относятся к Excel 2003, 2007 и 2013; не тестировалось в Excel 2000

    Если вы открываете файл двойным -щелкнув его имя в проводнике Windows, все работает нормально.

    Если открыть его из Excel, результаты будут разными: обязательно будет по 50% каждая. В значение может меняться в зависимости от их содержание. Мне также нужны все предметы в эти ячейки независимо от того, сколько строк должны выстроиться так же, как они будет в таблице ».

Вышеупомянутое невозможно в кроссбраузерном режиме без использования таблицы (вы можете смоделировать макет таблицы с помощью CSS:« display: table », но это не работает в IE6 или IE7) .

Я бы посоветовал вам думать немного по-другому при разработке с использованием CSS вместо таблиц, невозможно просто заменить «tr» и «td» на «div» и заставить все волшебным образом работать, как раньше. Я предлагаю вам установите ширину нижних «ячеек» и используйте один из вариантов, которые вам дали выше.

Надеюсь, что это поможет!

Так, например, если у вас есть

<mx:Canvas><mx:Label id="myLabel" /></mx:Canvas>

, вы можете получить к нему доступ по его id в качестве имени переменной:

myLabel.text = "Hello world!";

Дайте мне знать, если вам нужны дополнительные разъяснения. Если вы спрашиваете не об этом, не стесняйтесь комментировать, и я сделаю еще один удар.

С уважением, Вам нужно будет вернуть несколько частей информации для вашего ответа. К счастью, вы можете легко сделать это с помощью JSON, и jQuery автоматически обработает это за вас, если вы укажете тип ответа json. Объект, который вы вводите в свою функцию обратного вызова ajax, будет содержать все необходимые вам фрагменты данных в виде различных свойств.

Я бы посоветовал выработать привычку возвращать код состояния «успех» или «неудача» при каждом вызове ajax. , и набор ошибок с ним. См. Эту замечательную запись в блоге для получения дополнительной информации о том, что я имею в виду.

Причина этого в том, что вызов ajax всегда будет в основном «успешным», если только сервер действительно не сможет обработать запрос и не вернет код состояния HTTP сбоя. Если результат запроса похож на ошибку проверки,

    try
    {
        instance.Validate();
        return Json(new AjaxResponse(myHtmlData));
    }
    catch(Exception ex)
    {
        var response = new AjaxResponse(ex);

        // Get your validation errors here, put them into
        // your ajax response's Errors property.

        return Json(response);
    }
5
ответ дан 18 December 2019 в 13:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: