2012-09-16 48 views
0

我有这个在我的网页剃刀/ WebMatrix的变量范围

@{ 
    if(!IsPost){ 
     var db = Database.Open("MyDatabase"); 
     var catList= db.Query("select * from category");  
    } 
    else{ 
     var db = Database.Open("MyDatabase"); 
     var query = "insert into product (productkey,productname,categorykey) values(@0,@1,@2)"; 
     ....more code.... 
    } 
} 

在我的HTML我有以下

<select id="categorySelect" name="Name"> 
@foreach(var cat in catList){ 
    <option value=cat.CategoryKey>@cat.CategoryName</option> 
} 
</select> 

问题是,浏览这个网页的第一次,当我得到这个CS0103例外情况说名称catList不存在的上下文

我从另一页的链接加载此页面。我的代码有什么问题?

回答

0

您可以在if(){...}语句中定义catList,这样您会得到此错误,并在之前预先定义if

dynamic catList=null; 
if(!IsPost){ 
var db = Database.Open("MyDatabase"); 
catList= db.Query("select * from category"); 
... 
+0

嗨,谢谢阿列克谢,对面临同样问题的人只是一个澄清。 catList变量应声明为动态类型而不是IEnumerable以避免泛型类型异常: dynamic catList = null –

+1

好的,我修复了答案 – FLCL