我有一个RenderPartial,黄色屏幕IE在这一行
int addLocations = Model.Options.OfType<myOrderRowOption>().Single().AdditionalLocationsCount;
错误是: 异常详细信息:System.InvalidOperationException:Sequence不包含任何元素
FireFox渲染得很好。服务器端错误如何受到哪个浏览器的影响? (这不是回发 - 它是在第一次调用视图时发生的。)
跟进:
好的...所以我清理了代码,使其更加流畅,并且错误状态不再存在。 PartialView的基本要点是填充一个表单,其中orderRow可以容纳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>