Отправка Нескольких Объектов к Контроллеру MVC с помощью jQuery. Ajax

Я просто смотрю на тестовое приложение, которое хранит около 5 тыс. Двоичных данных в столбце. Первоначально он использовал varbinary, но так как он очень медленный, я решил попробовать blob. Ну, я смотрю на скорость записи на диск поверх и не вижу никакой разницы.

Единственное существенное отличие, которое я прочитал в руководстве по mysql, заключается в том, что движок памяти не поддерживает двоичные объекты, поэтому любые временные таблицы, создаваемые с помощью запросов (см., Когда mysql использует временные таблицы ), будут создаваться на диске и это намного медленнее. Так что лучше ставить на varbinary / binary, если он достаточно короткий, чтобы поместиться в строку (на данный момент всего 64 тыс. Для всех столбцов).

6
задан Damien 16 June 2009 в 15:47
поделиться

3 ответа

dataType в $. Метод ajax - это тип ответа (тип данных, которые вы ожидаете от сервера), а не запрос. Попробуйте вместо этого:

function PostForm() {
    $.ajax({
        url: "/Home/TestMVC",
        type: "POST",
        dataType: "application/JSON",
        data: $('#form').serialize() + "&" + $('.additionalParams').serialize()
    });
};

или:

function PostForm() {
    $.ajax({
        url: "/Home/TestMVC" + "?" + $('.additionalParams').serialize(),
        type: "POST",
        dataType: "application/JSON",
        data: $('#form').serialize()
    });
};

ОБНОВЛЕНО:

Попробуйте следующее:

Контроллер:

public void TestMVC(MyObject obj, String[] TheWeirdQueryString)
{
}

Клиент:

function PostForm() {
    $.ajax({
        url: "/Home/TestMVC",
        type: "POST",
        dataType: "application/JSON",
        data: $('#form').serialize() + "&" + $('.additionalParams').serialize()
    });
};

, но на стороне клиента ваши дополнительные параметры должны быть в следующем формате:

TheWeirdQueryString[0]=param1&TheWeirdQueryString[1]=param2&...&TheWeirdQueryString[n]=paramN

поэтому элементы $ ('. additionalParams') должны иметь атрибуты «id» и / или «name», например: TheWeirdQueryString [1],

5
ответ дан 17 December 2019 в 04:51
поделиться

Данные - это объект

...
data: { 
    x :$('#form').serialize(), 
    y:'something else'
}
...
0
ответ дан 17 December 2019 в 04:51
поделиться

Another solution if you want a dictionary of key/value pairs:

public void TestMVC(MyObject obj, IDictionary<string, object> TheWeirdQueryString)
{
}

Client:

function PostForm() {
    $.ajax({
        url: "/Home/TestMVC",
        type: "POST",
        dataType: "application/JSON",
        data: $('#form').serialize() + "&" + $('.additionalParams').serialize()
    });
};

$('.additionalParams').serialize() format:

TheWeirdQueryString[0].Key=param0&TheWeirdQueryString[0].Value=value0&TheWeirdQueryString[1].Key=param1&TheWeirdQueryString[1].Value=value1&...&TheWeirdQueryString[n].Key=paramN&TheWeirdQueryString[n].Value=valueN

UPDATED:

You need something like this:

<input class="additionalParams" type="text" name="TheWeirdQueryString[0].Key" value="param0" />
<input class="additionalParams"type="text" name="TheWeirdQueryString[0].Value" value="value0" />
<!-- ... -->
<input class="additionalParams"type="text" name="TheWeirdQueryString[n].Key" value="paramN" />
<input class="additionalParams"type="text" name="TheWeirdQueryString[n].Value" value="valueN" />
0
ответ дан 17 December 2019 в 04:51
поделиться
Другие вопросы по тегам:

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