我想迭代我的模型值。以下是我为实现这一目标所做的工作。但是可变计数永远不会增加。如何增加它以迭代我的模型值?
<script language="javascript" type="text/javascript">
function AddStudentName() {
var StudentName = document.getElementById('txtStudentName').value;
StudentName= StudentName.replace(/^\s+|\s+$/g, '');
if(StudentName!= null)
{
<%int count = 0; %>
for(var counter = 0; parseInt(counter)< parseInt('<%=Model.StudentInfo.Count%>',10); counter++)
{
alert('<%=count%>');
if('<%=Model.StudentInfo[count].StudentName%>' == StudentName)
{
alert("A student with new student name already exists.");
return false;
}
<%count = count +1;%>
}
}
}
</script>
感谢, 卡皮尔
答案 0 :(得分:1)
代码<%count = count + 1;%>
只会在ASP.NET生成HTML页面时在服务器端执行一次。这就是它永远不会增加的原因。你不能在服务器端和客户端混合逻辑。
您可以考虑在JavaScript中使用Model.StudentInfo[i].StudentName
中的数据构建数组,然后简单地遍历JavaScript数组:
var i;
var studentName = document.getElementById('txtStudentName').value;
// Prepare a 'StudentNamesString' in ASP.NET in the following format:
//
// ['Student Name 1', 'Student Name 2', 'Student Name 3']
//
// And use it as follows:
var studentNamesOnServer = <%= StudentNamesString; %>;
studentName = studentName.replace(/^\s+|\s+$/g, '');
for (i = 0; i < studentNamesOnServer.length; i++) {
if (studentNamesOnServer[i] === studentName) {
alert('A student with new student name already exists.');
}
}