C# 在Razor视图页面中进行简单添加
我的razor视图代码有一个问题,没有使用随机数生成进行简单的加法。请参阅下面的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){
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) {
...
}
}