У меня есть RenderPartial, который показывает желтый IE в этой строке
int addLocations = Model.Options.OfType<myOrderRowOption>().Single().AdditionalLocationsCount;
ошибка:
Сведения об исключении: System.InvalidOperationException: последовательность не содержит элементов
FireFox делает это нормально. Как на стороне сервера может повлиять ошибка браузера? (это не обратный вызов - это происходит при первом вызове представления).
Продолжение:
Хорошо ... поэтому я очистил код, чтобы сделать его немного более презентабельным, и ошибка больше не существует. Основная суть PartialView - заполнение формы, в которой orderRow может содержать 2 разных типа входов - группу переключателей и, возможно, текстовое поле.
Первоначально у меня было 2 отдельных цикла FOREACH для перебора всех опций, и я записал переключатели в первом и текстовое поле во втором. (с проверкой «If OptionType» внутри каждого цикла.
Я изменил это на 1 цикл FOREACH и вместо этого использовал ветку ELSE. Это очистило состояние ошибки, но я все еще не вижу, как браузер может повлиять на условия на стороне сервера в состоянии без обратной передачи.
эта структура кода работает - комментарии ниже детализируют отличия от исходного состояния ошибки.
<div class="showOrderRow">
<%string isChecked = "";
foreach (var option in WebinarFacade.Instance.GetOptions(Model.Webinar))
{
isChecked = (int)Model.RegistrationType == option.ID ? "checked" : "";
var optionType = option.GetType();
if (optionType.Name == "Option")
{%>
<input type="radio" ... />
<%
}
// originally this foreach loop ended and a started
//a 2nd one with a test that would exlcude the radio buttons
//if (optionType.Name != "Option")
else
{//point of original error
int addLocations = Model.Options.OfType<myOrderRowOption>().Single().optionCount;
%>
<br />
<h5>
Additional Locations</h5>
<input type="text" value="<%=addLocations%>" );'
name="Count<%=Model.Order.ID %>"
<%
}
}
</div>