【问题标题】:Can two actions pass for @Ajax.ActionLink@Ajax.ActionLink 可以通过两个操作吗
【发布时间】:2015-11-02 13:57:21
【问题描述】:

这是我的看法。

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

单击此按钮后,将调用 FilteredCourses 操作,结果将显示在 CourseList div 标签内。该部分正在工作。我需要在同一 div 位置打印单击链接(item.courseCategory)的值。 (例如:如果我单击“科学”链接,我想在同一视图和特定位置打印科学)我怎么能使用上面的代码段来做到这一点?

【问题讨论】:

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


    【解决方案1】:

    您可以使用普通的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>
    

    【讨论】:

      猜你喜欢
      • 2014-08-12
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 2016-07-26
      • 1970-01-01
      • 1970-01-01
      • 2022-06-29
      • 2015-05-15
      相关资源
      最近更新 更多