У меня есть форма с одним текстовым полем и одной кнопкой. Здесь мне нужно проверить, если пользователи не вводят недопустимые данные в текстовое поле, поэтому в site.masters есть функция head, которая называется событием onclick. Проблема в том, что даже после установки переменной «returnValue» в значение «False» выполняется действие контроллера, и я получаю следующую ошибку:
Ошибка сервера в приложении '/'.
Словарь параметров содержит пустую запись для параметра
'id' не обнуляемого типа 'System.int32' для метода
System.Web.Mvc.ActionResult AddStudent (System.DateTime) в
'Student.Controllers.HomeController. Необязательный параметр должен быть
ссылочный тип, обнуляемый тип или объявленный как необязательный
параметр. Имя параметра: параметры
Действие контроллера:
public ActionResult AddStudent(int id)
{
StudentDataContext student = new StudentDataContext ();
var std = student.Students.FirstOrDefault(s => s.StudentId == id);
std = new Models.Student() { StudentId = id};
student.Students.InsertOnSubmit(std);
student.SubmitChanges();
TempData["Message"] = "Student " + id + " is added";
return RedirectToAction("Index", TempData["Message"]);
}
Вот мой код JavaScript с сайта. Мастер:
<script language="javascript">
function verifyInput() {
var returnValue = true;
if (document.getElementById('studentId').length != 10) {
returnValue = false;
alert("please enter a valid id")
Form1.studentId.value = "";
}
return returnValue;
}
</script>
Вот мой код формы с моей точки зрения:
<form id="Form1" method="get" action="/Home/AddStudent/" runat="server">
<label for="id">
<br /><br /> Student ID:
</label>
<input type="text" name="studentId" id="studentId" maxlength=10/>
<input type="submit" value="Add Student" onclick="verifyInput()"/>
</form>
Как мне решить эту проблему?
Заранее спасибо