我有一个要显示的视图,为此我有一个接受字符串(StudentID)的控制器。这是我的控制器操作:
public ActionResult ShowStudent(string StudentID)
{
ViewData.Model = student.vwStudent.Where(s => s.StudentID == StudentID);
return View();
}
现在在这里,StudentId 中有前导零。例如 00003345、000000223 等。因此,要显示特定学生的视图,我必须在 url 中输入确切的字符串“00003345”:“http://Students/ShowStudent/00003345”我希望能够显示即使我在 url 中输入“3345”也可以查看:“http://Students/ShowStudent/3345”,但出现错误。
我尝试传递 Long(Int64) 参数而不是字符串并将 StudentID 转换为 ViewData.Model 中的字符串,例如:
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));