Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Razor视图页面中进行简单添加_C#_Asp.net Mvc_Razor Pages - Fatal编程技术网

C# 在Razor视图页面中进行简单添加

C# 在Razor视图页面中进行简单添加,c#,asp.net-mvc,razor-pages,C#,Asp.net Mvc,Razor Pages,我的razor视图代码有一个问题,没有使用随机数生成进行简单的加法。请参阅下面的razor视图代码 Random rand = new Random(); int r1 = rand.Next(0,100); int r2 = rand.Next(0,100); int ans = r1 + r2; string incorrect = ""; string correct = ""; string response = ""; int input = 0; if(IsPost){

我的razor视图代码有一个问题,没有使用随机数生成进行简单的加法。请参阅下面的razor视图代码

Random rand = new Random();
int r1 = rand.Next(0,100);
int r2 = rand.Next(0,100);
int ans = r1 + r2;

string incorrect = "";
string correct = "";
string response = "";
int input = 0;

if(IsPost){
    response = Request.Form["response"];
    input = Convert.ToInt32(response);
    if(input != ans){
        incorrect = "Incorrect";
    }
    else if(input == ans){
        correct = "Correct";
    }
}
在视图中,我使用
接受用户对等式的答案。请参阅下面的查看代码

<div class="danger">@incorrect</div>
<div class="success">@correct</div>
<form method="post">
    <fieldset>
        <div class="form-group inline-div">
            <label for="response" class="control-control col-sm-2 text-20 text-right">@r1 + @r2 = </label>
            <div class="col-md-2">
                <input type="text" name="response" class="form-control" placeholder="@ans" required />
            </div>
            <div class="col-md-2">
                <input type="submit" class="btn btn-default form-control" value="Submit" />
            </div>
        </div>
    </fieldset>
</form>
<div>The correct answer is: @ans</div>
@不正确
@正确的
@r1+@r2=
正确答案是:@ans

问题是,无论我作为用户输入什么(正确或不正确),razor都会说它不正确。有人能帮我找出我做错了什么吗?

第一块代码被执行了两次——第一次是在页面呈现期间(提问),第二次是在提交答案时。变量ans的值被计算为随机值,在第一种和第二种情况下是不同的

例如: -呈现“2+2=?”,
ans
为4 -“4”已提交,但这次ans为6,因此显示“不正确”

您需要将值
r1
r2
包含到表单数据中,并在POST处理程序中使用它们来计算正确答案:

剃刀:

<input type="hidden" name="r1" value="@r1" />
<input type="hidden" name="r2" value="@r2" />
if(IsPost){
   ans = int.Parse(Request.Form["r1"]) + int.Parse(Request.Form["r2"]);
   ...
   if (ans != input) {
      ...
   }
}