可以为@ Ajax.ActionLink传递两个操作

时间:2015-08-10 15:12:06

标签: jquery asp.net-mvc-4 razor entity-framework-4 code-first

这是我的观点。

 @Ajax.ActionLink( item.courseCategory,"FilteredCourses",
             new { crsCtgry = item.courseCategory },
             new AjaxOptions{
                  UpdateTargetId = "CourseList", 
                  InsertionMode.Replace,
                  HttpMethod = "GET" } )

点击此后,FilteredCourses操作将调用,结果将显示在CourseList div标签内。那个部分正在工作。我需要在同一个div位置打印点击链接(item.courseCategory)的值。 (例如:如果我点击一个链接" Science",我想在相同的视图和具体位置打印科学)我怎么能用上面的代码段做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用普通Html.ActionLink辅助方法而不是Ajax.ActionLink方法,并自行加载网格的ajax。它是非常简单的代码,您可以灵活地执行任何操作。

@Html.ActionLink(item.courseCategory,"FilteredCourses","YourControllerName",
      , new {  course = item.courseCategory}, 
        new { @class = "myLink",data_courseName=item.courseCategory }


<h2 id="courseSelection" />
<div id="CourseList"></div>

这将为每个项目生成一个锚标记,其中包含一个名为“data-coursename”的html 5数据属性,该属性将具有courseCategory的值。

现在有点javascript来处理点击事件

<script type="text/javascript">
$(function(){

  $("a.myLink").click(function(e){
    e.preventDefault();

   var _this=$(this);

   $.get(_this.attr("url"),function(res){

     //Update the list
     $("#CourseList").html(res);

     //Update the title/header
     $("#courseSelection").html(_this.data("coursename"));

   });        

  });    

});
</script>