특정 배열 변수의 설정 여부에 따라 조건부 논리가있는 일부 Razor 코드가 있습니다. 나는 그것이 null 일 때 가장 좋은 방법을 처리하는 시간을 알아내는 지옥을 가지고 있고, 나는 내 kludgy 솔루션에 만족하지 않는다. 나는 이런 식으로 뭔가해야합니다, 코드에서 나중에면도기 코드에서 널 변수의 가능성을 처리하는 방법은 무엇입니까?
@{
if (ViewBag.Foo != null)
{
double[] bar = new double[ViewBag.Foo.Length];
}
}
: 여기
는 무슨 일이 일어나고 있는지의 간단한 예제 그 코드로@if (ViewBag.Foo != null)
{
...some code that uses `bar` goes here ...
}
을, 나는 때 ViewBag.Foo
실제로 오류가 발생할 수 null bar
을 사용하는 코드의 두 번째 섹션에 대해 불만을 표시하는 예외가 발생하며 범위에 포함되지 않습니다. 그러나 실행시 두 번째 섹션은 항상 건너 뜁니다.
잠시 그것으로 장난 후, 난 그냥 대신에 이런 짓을 : ViewBag.Foo가 null 및 null이 아닌 경우
이 변경으로double[] bar;
@{
if (ViewBag.Foo != null)
{
bar = new double[ViewBag.Foo.Length];
}
}
else
{
bar = new double[1];
}
는, 코드가 작동합니다. 이걸 처리하는 더 좋은 방법이 있어야 해 ... 누구?
ViewBag.Foo는 실제로 존재하지 않습니다 (코드가 잘 작동하는 동적 유형이므로). ViewBag.Foo가 존재합니까? 그렇지 않다면, 읽으십시오 : http://stackoverflow.com/questions/2634858/how-do-i-reflect-over-the-members-of-dynamic-object – Polity
제 말은 ... 이것은 정확하게 당신이 ' 우선 동적 인 언어를 피하는 것이 좋습니다. 확실한 모델로 사용자 정의보기를 만드는 것을 고려 했습니까? –