使用HTML表单比较2个字符串

时间:2015-04-12 12:44:13

标签: html razor

我正在用剃刀写我的第一个应用程序并发现它很有趣和令人上瘾。我发现这个网站上的答案对于解决我的代码中的许多错误非常有用。非常感谢社区。我几乎完成了我的程序,这是一个测验网站,允许用户将自己的问题和答案上传到数据库。

我在比较使用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>

1 个答案:

答案 0 :(得分:0)

输入字段的默认值是单个空格而不是空字符串。如果您只是在输入字段中添加“x”并提交表单(不删除空格),则查询字符串将显示为?uAnswer=+x而不是所需的?uAnswer=x

如果替换:

<input type="text" name="uAnswer" value=" "/>

<input type="text" name="uAnswer" value=""/>

一切都应该正常运作。