c# mvc5+ef 实现简单答题系统4 计算分数
因为不是一次性读出所有题目,也不是用户名记录分数,所以我选择使用cookie
一。在答题主题页AnswersIndex加上cookie的写入,默认为0.
<script type="text/javascript"> document.cookie = "usersorce=0" + ";path=/"; </script>
二、在答题页面进行读取
1.在页面导入后,加入一个JS,将COOKIE读出来,显示分数,并有一个读取的某用户名的COOKIE的方法
<body> <nav class="navbar navbar-default navbar-fixed-top row"> <div class="container" style="line-height:40px;margin-left:10px;"> @ViewBag.title 【得分 <span id="chtmlsort">..</span> 】 </div> </nav> <script type="text/javascript">
///下午二行就是读出这个usersorce用户的值并显示。 var mmmm = getCookie('usersorce'); document.getElementById("chtmlsort").innerHTML = mmmm;
function getCookie(name) { var arr = document.cookie.split('; '); for (var i = 0; i < arr.length; i++) { var temp = arr[i].split('='); if (temp[0] == name) { return temp[1]; } } return ''; } </script>
然后在foreach数据的中间加入JS,当为真的时候,加入分值。
@foreach (var item in Model)
{
<div class="contmaring"> 题目: @Html.DisplayFor(modelItem => item.KaoTiTitle) </div>
<div class="contAD" ><a href="#" id="aaa" onclick="myFunction('A')">A: @Html.DisplayFor(modelItem => item.KaoTiA)</a> </div>
<div class="contAD" ><a href="#" id="bbb" onclick="myFunction('B')">B: @Html.DisplayFor(modelItem => item.KaoTiB)</a> </div>
<div class="contAD" ><a href="#" id="ccc" onclick="myFunction('C')">C: @Html.DisplayFor(modelItem => item.KaoTiC)</a> </div>
<div class="contAD" ><a href="#" id="ddd" onclick="myFunction('D')">D: @Html.DisplayFor(modelItem => item.KaoTiD)</a> </div>
<div class="contAD hidden" id="duil"> 祝贺你,答对了!!!! </div>
<div class="contAD hidden" id="cuol">你回答: 错了!正确答是 @Html.DisplayFor(modelItem => item.CorrectOptions) </div>
<div class="contAD hidden" id="jiesuo">解说: @Html.DisplayFor(modelItem => item.Explain) </div>
<script>
function myFunction(a) {
var x = '@Html.DisplayFor(modelItem => item.CorrectOptions)' ;
if (a == x) {
document.getElementById("duil").className = "contAD show"; //更换新样式名
document.getElementById('aaa').onclick = null;
document.getElementById("bbb").onclick = null;
document.getElementById("ccc").onclick = null;
document.getElementById("ddd").onclick = null;
var xsorce='@Html.DisplayFor(modelItem => item.Score)';
var isorce = parseInt(xsorce);
var newsorce = getCookie('usersorce');
var newisorce = parseInt(newsorce);
var subsocre = isorce + newisorce;
document.getElementById("chtmlsort").innerHTML = subsocre;
document.cookie = "usersorce=" + subsocre + ";path=/";
}
else {
document.getElementById("cuol").className = "contAD show"; //更换新样式名
document.getElementById("jiesuo").className = "contAD show"; //更换新样式名
document.getElementById('aaa').onclick = null;;
document.getElementById("bbb").onclick = null;
document.getElementById("ccc").onclick = null;
document.getElementById("ddd").onclick = null;
}
}
</script>
浙公网安备 33010602011771号