2012-09-16 87 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