razor/WebMatrix变量范围
我的网页上有这个razor/WebMatrix变量范围,razor,webmatrix-2,Razor,Webmatrix 2,我的网页上有这个 @{ 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
@{
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>
@foreach(catList中的var cat){
@类别名称
}
问题是,当我第一次导航到此页面时,我收到CS0103异常,表示上下文中不存在名称catList
我正在从另一个页面的链接加载此页面。我的代码出了什么问题?您在if(){…}语句中定义了catList,所以您得到了这个错误,请在if之前预定义它
dynamic catList=null;
if(!IsPost){
var db = Database.Open("MyDatabase");
catList= db.Query("select * from category");
...
嘿,谢谢Aleksey,只需向那些面临同样问题的人澄清一下。catList变量应使用类型dynamic而不是IEnumerable声明,以避免泛型类型异常:dynamic catList=null