Ошибка сервера для IE, но не для Firefox - PullRequest
1 голос
/ 23 января 2011

У меня есть 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>
...