Головная боль флажка asp.net MVC!

нашли простой способ .. просмотр изображений с помощью определения радиуса пользователя:

http://shortcutsandroid.blogspot.in/2015/02/round-image-view-in-android.html

просто добавьте imageView.setRadius ();

// он установит радиус для круглого изображения.

9
задан Vikas 7 June 2009 в 19:59
поделиться

6 ответов

В вашем примере, когда вы отправляете форму с true, true, true, false, false и получаете

true,false,true,false,true,false,false,false
, интересно отметить, что вы на самом деле не получение восьми значений обратно, но пять массивов, которые просто выглядят так, потому что все значения объединены.

Я знаю, что вы просили не получать цикл для вашего ответа, но я могу использовать один, чтобы продемонстрировать, что на самом деле происходит здесь:
foreach (string key in postedForm.AllKeys) {
    // "value" will contain a joined/comma-separated list of ALL values,
    // including something like "true,false" for a checked checkbox.
    string value = postedForm[key].GetValue;
    // "values" will be an array, where you can access its first element,
    // e.g., values[0], to get the actual intended value.
    string[] values = postedForm.GetValues(key);
}

Итак, для установленных флажков вы получите массив значений с двумя элементами, а для флажков без флажков вы получите только одноэлементный массив.

Таким образом, чтобы ответить на ваш вопрос как преодолеете ли вы эту проблему , ответ заключается в использовании GetValues, а не GetValue, и представлении ваших опубликованных полей как массивов, а не строк.

Удачи!

1
ответ дан 3 November 2019 в 07:14
поделиться

Он отображается так, потому что связыватель по умолчанию требует, чтобы FormCollection имел значение для параметров, не допускающих значения NULL. Используя эту технику, мы уверены, что значение будет отправлено, даже если флажок не установлен (по умолчанию значение отправляется только тогда, когда он установлен). Если вы используете этот метод контроллера только с одним вводом html, вы получите ошибку в сообщении формы с не отмеченным флажком (значение флажка не будет опубликовано, и связыватель не будет знать, что использовать для значения isItemSelected):

public ActionResult SomeActionMethod(bool isItemSelected)

Вы можете попробовать используйте что-то вроде этого с одним вводом html:

public ActionResult SomeActionMethod(bool? isItemSelected)

Но в этом случае isItemSelected будет иметь значение null или true. И это никогда не станет ложью.

0
ответ дан 3 November 2019 в 07:14
поделиться

Есть несколько способов, которыми вы можете воспользоваться в зависимости от ваших требований.

Я использую этот метод.

<input type="checkbox" value="<%= item.ID %>" name="check" checked="checked")" />

Это могут быть флажки.

На стороне сервера у меня также будет массив идентификаторов элементов в модели. Поэтому я проверяю, есть ли он в массиве

var strArray = form["checkbox"]; //Request.form["checkbox"] or "FormCollection form" in action parameter;  array of ID's in comma separated string.

У разных людей разные тесты.

0
ответ дан 3 November 2019 в 07:14
поделиться

Я знаю, что это не самый элегантный вариант, но вот что я сделал:

collection ["response"]. Replace ("true, false", "true"). Split (','). ToList ();

2
ответ дан 3 November 2019 в 07:14
поделиться

, это было предназначено для использования просто для простого CheckBox, вам нужен checkboxList, который еще не включен в API ASP.net MVC

Если вы ищете что-то вроде списка флажков, возможно, вам стоит написать свой собственный помощник, хорошо понимающий HTML…

Вот и все! :)

0
ответ дан 3 November 2019 в 07:14
поделиться

Проще просто проверить, есть ли AttemptedValue.Contains ("true") - он будет, если он отмечен, а не если он не отмечен ....

0
ответ дан 3 November 2019 в 07:14
поделиться
Другие вопросы по тегам:

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