表示したいビューがあり、文字列(StudentID)を受け入れるコントローラーがあります。これが私のコントローラーのアクションです:
public ActionResult ShowStudent(string StudentID)
{
ViewData.Model = student.vwStudent.Where(s => s.StudentID == StudentID);
return View();
}
ここで、StudentIdには先行ゼロが含まれています。例:00003345、000000223など。したがって、特定の学生のビューを表示するには、URLに正確な文字列「00003345」を入力する必要があります。「http:// Student / ShowStudent/00003345」を表示できるようにしたいURLに「3345」と入力しても表示されます:「http:// Student / ShowStudent / 3345」が、エラーが発生します。
文字列の代わりにLong(Int64)パラメータを渡して、ViewData.ModelでStudentIDをStringに変換してみました。
ViewData.Model = student.vwStudent.Where(s => s.StudentID == StudentID.ToString());
しかし、エラーが発生します:
LINQ to Entitiesは、メソッド'System.String ToString()'メソッドを認識せず、このメソッドをストア式に変換できません。
編集:次のようにInt64に解析するだけの何が問題になっていますか?
ViewData.Model = student.vwStudent.Where(s => Int64.Parse(s.StudentID) == Int64.Parse(StudentID));