1. 在JQuery框架下,发起请求的html,如下:
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</tile>
<script src="lib/jquery-3.4.1.min.js"></script>
</head>
<body>
<div>
<table id="tbSubject">
</table>
</div>
<script>
$(function(){
stringRender();
function getServerReturn(){
subjects = [];
$.ajaxSettings.async = false;
$.post("/Controller/ServerReturn.ashx",{mark: "getReturn"}, function(res){
subjects = $.parseJSON(res);
console.log(res);
});
return subjects;
}
function stringRender(){
var subjects = getServerReturn();
for(var i = 0; i < subjects.length; i++){
var subject = subjects[i];
var item = '
<tr>
<td>
<p>${i+1}.${subject.Stem}</p>
${subject.Image != null ? '<img src="${subject.Image}" alt="配图" />' : ''}
<p>
<lable>
<input type="radio" name="${subject.Id}" value="A" /> A.${subject.OptionA}
</lable>
</p>
<p>
<lable>
<input type="radio" name="${subject.Id}" value="B" /> B.${subject.OptionB}
</lable>
</p>
<p>
<lable>
<input type="radio" name="${subject.Id}" value="C" /> C.${subject.OptionC}
</lable>
</p>
<p>
<lable>
<input type="radio" name="${subject.Id}" value="D" /> D.${subject.OptionD}
</lable>
</p>
</td>
</tr>
';
$("#tbSubject").append(item);
}
}
})
</script>
</body>
</html>
2. 服务器端的ServerReturn.ashx,如下:
public class ServerReturn : IHttpHandler, IRequiresSessionStata
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
var mark = content.Request["mark"];
if(mark == "getReturn")
{
string id = context.Session["id"].ToString();
var res = new ServerBLL().getServe(id);
JavaScriptSeriallizer json = new JavaScriptSeriallizer();
context.Response.Write(json.Serialize(res));
}
if(mark = "getExamInfo"){
var examId = Convert.ToInt32(context.Session["eid"]);
var totalTime = new ExaminationsBLL().ListById(examId).First().ExaminationDuration.ToString();
context.Response.Write(totalTime);
}
}
public bool IsReusable
{
get{
return false;
}
}
}
3. 不采用JQuery框架,JsRender框架下,发起请求的html,如下:
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</tile>
<script src="lib/jquery-3.4.1.min.js"></script>
<script src="lib/jsrender.min.js"></script>
</head>
<body>
<div>
<table id="tbSubject">
</table>
</div>
<script id="subjectTalbeJr" type="text/x-jsrender">
<tr>
<td>
<p>{{:#index+1}}.{{:Stem}}</p>
<p>
<if :Image != null>
<img src="{{:Image}}" alt="这是配图" />
</if>
</p>
<p>
<lable>
<input type="radio" name="{{:Id}}" value="A" /> A.{{:OptionA}}
</lable>
</p>
<p>
<lable>
<input type="radio" name="{{:Id}}" value="B" /> B.{{:OptionB}}
</lable>
</p>
<p>
<lable>
<input type="radio" name="{{:Id}}" value="C" /> C.{{:OptionC}}
</lable>
</p>
<p>
<lable>
<input type="radio" name="{{:Id}}" value="D" /> D.{{:OptionD}}
</lable>
</p>
</td>
</tr>
</script>
<script>
$(function(){
jsRendering();
function getServerReturn(){
subjects = [];
$.ajaxSettings.async = false;
$.post("/Controller/ServerReturn.ashx",{mark: "getReturn"}, function(res){
subjects = $.parseJSON(res);
console.log(res);
});
return subjects;
}
function jsRendering(){
var subject = getServerReturn();
var resHtml = $("#subjectTalbeJr").render(subjects);
$("#tbSubject").append(resHtml);
}
})
</script>
</body>
</html>