我正在用剃刀写我的第一个应用程序并发现它很有趣和令人上瘾。我发现这个网站上的答案对于解决我的代码中的许多错误非常有用。非常感谢社区。我几乎完成了我的程序,这是一个测验网站,允许用户将自己的问题和答案上传到数据库。
我在比较使用get方法通过html表单传递一个变量的字符串时遇到了问题。如果用户回答了正确的答案,我的页面显示两个变量(字符串)是相同的,但在比较它们时,我的bool仍然返回false。
如果这很明显,或者之前已经被问过,我很抱歉。如果是这样,你能否将我重定向到可以解释我做错的来源。 非常感谢 以下是无效的代码部分
@{
var uAns = " ";
var cAns = "x";
bool? anBool = null; // should set to true if user answer is correct
if (!Request.QueryString["uAnswer"].IsEmpty())
{
uAns = Request.QueryString["uAnswer"];
}
if (String.Equals(uAns, cAns, StringComparison.OrdinalIgnoreCase) == true)
{
anBool = true;
}
else
{
anBool = false;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<form action="" method="get">
<p><label for="uAnswer">Answer:</label>
<input type="text" name="uAnswer" value=" "/>
</p>
<p><input type="submit"/></p>
</form>
uAns = @uAns
cAns = @cAns
<p>anBool = @anBool</p> // why is this always false ?? :-(
</body>
</html>
答案 0 :(得分:0)
输入字段的默认值是单个空格而不是空字符串。如果您只是在输入字段中添加“x”并提交表单(不删除空格),则查询字符串将显示为?uAnswer=+x
而不是所需的?uAnswer=x
。
如果替换:
<input type="text" name="uAnswer" value=" "/>
与
<input type="text" name="uAnswer" value=""/>
一切都应该正常运作。