asp.net mvc 关于foreach 局部变量的问题。

图片说明

在asp.net mvc 上,变量名使用范围我理解的是在@{}之内。但是当我第二个foreach循环的变量名和第一个foreach 循环的变量名相同时,监听第二个foreach 的变 量 orderflightTicket会抛出异常呢。?突然间没想明白。
图片说明

加个@呗。报错,报什么错呢。

1.首先你的代码写得是没有问题的,应该没有在两个foreach 之外定义过这个变量orderFlightOrder。
2.如果还是没有找到原因的话,那就得从razor 在编译执行的时候,或解释执行的时候出现了多次定义的情况.(注意:cshmtl 最后也会被编译成.net IL)
3.综合上面两个情况,很有可能是编译的时候,编译出现了二义性.
4.建议换个变量来做个排除法来确定吧,希望对你有用。