2016-09-28 45 views
0

这里,ActionLink的在TeacherIndex鉴于TeacherController“让学生”必须调用StudentController和行动方法StudentList,然后进入查看StudentIndexAjax.ActionLink不调用控制器动作和视图

TeacherIndex.cshtml在TeacherController:

@model IEnumerable<StudentMVC.Models.TeacherEntity> 

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 
<table class="table"> 
<tr> 
    <th> 
     @Html.DisplayNameFor(model => model.TeacherId) 
    </th> 
    ...  
</tr> 
@if (Model != null) 
{ 

foreach (var item in Model) 
{ 
<tr> 
    <td> 
     @Html.DisplayFor(modelItem => item.TeacherId) 
    </td> 
    ... 
    <td>    
     @Ajax.ActionLink("Get Students", "StudentList", "Student", new { id = item.TeacherId }, new AjaxOptions { HttpMethod = "POST" })   
    </td> 
</tr> 
} 
} 

StudentController:

[HttpPost] 
public ActionResult StudentList(int TeacherId) 
    { 
     List<StudentEntity> studentList = new List<StudentEntity>(); 
     SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Moviedb"].ConnectionString);    
     SqlCommand cmd = new SqlCommand("SP_Student", con); 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.AddWithValue("@TeacherId", TeacherId); 
     con.Open(); 
     SqlDataReader dr = cmd.ExecuteReader(); 
     while (dr.Read()) 
     { 
      StudentEntity student = new StudentEntity(); 
      student.StudentId = Convert.ToInt32(dr["StudentId"]); 
      //...    
      studentList.Add(student); 
     } 
     con.Close(); 
     return View("StudentIndex", studentList); 
    } 

但在这里,取而代之的是,显示

'/'应用程序中的服务器错误。无法找到该资源。

请求的URL:/学生/ StudentList/1

回答

3

参数的名称应该是相同的。使用这个:

@Ajax.ActionLink("Get Students", "StudentList", "Student", new { @TeacherId = item.TeacherId }, new AjaxOptions { HttpMethod = "POST" }) 
+0

我已经尝试过上面的代码。但错误没有改变。 –

相关问题