声明页面变量的问题 - Razor
Issues with declaring page variables - Razor
我在使用 cookie 值从我的数据库中提取一些数据的网站上的某个页面出现问题。它适用于我的字符串,但我的整数和日期有问题。
我首先声明空白变量:
int numAdults;
然后我检查是否设置了 cookie,如果是,我执行数据库查询(numAdults 在数据库中是数据类型 int):
if(Request.Cookies["BookingReq"] != null){
var breq = db.QuerySingle("SELECT * FROM BookingRequests WHERE BookingGUID = @0", Request.Cookies["BookingReq"].Value);
numAdults = int.Parse(breq.NumAdults);
}
在我的表单中,如果未设置 cookie,我想显示为空,如果是,则显示 "selected" 选项:
<select class="form-control" id="numAdults" name="numAdults" @Validation.For("numAdults")>
<option>Choose</option>
<option value="0" selected="@(int.Parse(numAdults) == 0)">0</option>
<option value="1" selected="@(int.Parse(numAdults) == 1)">1</option>
<option value="2" selected="@(int.Parse(numAdults) == 2)">2</option>
<option value="3" selected="@(int.Parse(numAdults) == 3)">3</option>
<option value="4" selected="@(int.Parse(numAdults) == 4)">4</option>
</select>
但是,当我 运行 页面时,我会遇到以下错误:
<option value="0" selected="@(numAdults == 0)">0</option>
Operator '==' cannot be applied to operands of type 'string' and 'int'
不确定 WebMatrix 如何返回其动态结果,但我认为 breq.NumAdults
实际上必须是一个字符串,否则在分配给 numAdults
时应该会出错。 (通过在该行上设置断点并检查 breq.NumAdults
来确认这一点)。
看来你要做的是让numAdults
成为一个整数,然后在从数据库中检索时解析:
int numAdults; // Or pre-set this to zero if you need a default value.
...
numAdults = int.Parse(breq.NumAdults);
我在使用 cookie 值从我的数据库中提取一些数据的网站上的某个页面出现问题。它适用于我的字符串,但我的整数和日期有问题。
我首先声明空白变量:
int numAdults;
然后我检查是否设置了 cookie,如果是,我执行数据库查询(numAdults 在数据库中是数据类型 int):
if(Request.Cookies["BookingReq"] != null){
var breq = db.QuerySingle("SELECT * FROM BookingRequests WHERE BookingGUID = @0", Request.Cookies["BookingReq"].Value);
numAdults = int.Parse(breq.NumAdults);
}
在我的表单中,如果未设置 cookie,我想显示为空,如果是,则显示 "selected" 选项:
<select class="form-control" id="numAdults" name="numAdults" @Validation.For("numAdults")>
<option>Choose</option>
<option value="0" selected="@(int.Parse(numAdults) == 0)">0</option>
<option value="1" selected="@(int.Parse(numAdults) == 1)">1</option>
<option value="2" selected="@(int.Parse(numAdults) == 2)">2</option>
<option value="3" selected="@(int.Parse(numAdults) == 3)">3</option>
<option value="4" selected="@(int.Parse(numAdults) == 4)">4</option>
</select>
但是,当我 运行 页面时,我会遇到以下错误:
<option value="0" selected="@(numAdults == 0)">0</option>
Operator '==' cannot be applied to operands of type 'string' and 'int'
不确定 WebMatrix 如何返回其动态结果,但我认为 breq.NumAdults
实际上必须是一个字符串,否则在分配给 numAdults
时应该会出错。 (通过在该行上设置断点并检查 breq.NumAdults
来确认这一点)。
看来你要做的是让numAdults
成为一个整数,然后在从数据库中检索时解析:
int numAdults; // Or pre-set this to zero if you need a default value.
...
numAdults = int.Parse(breq.NumAdults);