在Ajax.ActionLink中间运行javascript函数

时间:2016-12-30 15:09:26

标签: javascript c# jquery model-view-controller

问题在于:我有一个Ajax.ActionLink(),我需要在textbox中为routeValues提供一个值:

@Ajax.ActionLink("Purchase Tracking", "StatusOfFactor", "Shopping", new { guid = HERE I WANT A JAVASCRIPT FUNCTION TO RETRIEVE VALUE FROM TEXTBOX } , ajaxOptions: new AjaxOptions { UpdateTargetId = "StatusOfFactor", HttpMethod = "GET", InsertionMode = InsertionMode.Replace }, htmlAttributes: new { @class = "btnpeyment btn btn-xs bg-color-btn" })

我该如何实施呢?

2 个答案:

答案 0 :(得分:0)

RewriteEngine On

将ID替换为您正在使用的ID。

注意:如果通过AJAX调用将文本框放在页面上,则需要使用事件委派来完成此工作,将其委托给最初在页面上加载的父容器。

答案 1 :(得分:0)

你可以替换Ajax.ActionLink并自己编写一些javascript代码来实现你的目标。

首先,我们将使用普通的锚标记

替换Ajax操作链接
<a id="purchasTrackingLink" class="btnpeyment"
                    href="@Url.Action("StatusOfFactor","Shopping")">Purchase Tracking</a>
<input id="YourTextBoxId" />

现在连接此链接上的click事件,阻止默认行为,读取文本框的值并使用它来生成新的目标URL并将其用于ajax call.p

$(function(){

   $("#purchasTrackingLink").click(function(e){

       e.preventDefault();

       var textBoxVal=$("#YourTextBoxId").val();
       var url=$(this).attr("href");
       url=url+"?guid="+textBoxVal;
       //Now make the ajax call
       $.get(url,function(response){
          $("#StatusOfFactor").html(response);
       });

   });

});