Как получить результат селектора jQuery в @Ajax.Объект ActionLink routevalues?

#jquery #ajax #asp.net-mvc-3

#jquery #ajax #asp.net-mvc-3

Вопрос:

У меня есть следующий @Ajax.Код ActionLink:

 @Ajax.ActionLink("Assign Ownership",
                 "AssignOwnership",
                 new
                 {
                   techLogCode = Model.TechLog.Code,
                   salesRepId = "",
                 },
                 new AjaxOptions
                 {
                   HttpMethod = "POST",
                   Confirm = "Are you sure you want to take ownership?",
                   OnSuccess = "reloadWindow",
                   OnFailure = "displayAjaxError"
                 })
  

У меня есть выпадающий список с идентификатором владельца, и я хочу использовать выбранное значение в качестве salesRepId. Как мне получить это значение в моем вызове @Ajax?

Я думаю, что это jQuery, который будет работать.

 $("#owner option:selected").val()
  

Комментарии:

1. Вы пробовали salesRepId = "$('#owner option:selected').val() "?

2. Jquery никогда не запускается. Он буквально передает параметр $(‘#owner:selected’).val() как salesRepId .

3. Не могли бы вы опубликовать, как выглядит ссылка на действие ajax на стороне клиента?

4. Ваша ссылка на действие ajax отображается как ссылка что-то вроде <a data-ajax="true" data-ajax-confirm="Are you sure you want to take ownership?" data-ajax-failure="displayAjaxError" data-ajax-method="POST" data-ajax-success="reloadWindow" href="/Home/AssignOwnership?techLogCode=Value1amp;salesRepId=value2">Assign Ownership</a> того, что вы можете сделать, это использовать jQuery / javascript для изменения href для включения выбранного значения

Ответ №1:

Поместите ссылку на действие в div и используйте jQuery для изменения ссылки для вашего ajax на стороне клиента.

     <div id="ajaxForm">    
          @Ajax.ActionLink("Assign Ownership",
             "AssignOwnership",
             new
             {
               techLogCode = Model.TechLog.Code,
               salesRepId = "",
             },
             new AjaxOptions
             {
               HttpMethod = "POST",
               Confirm = "Are you sure you want to take ownership?",
               OnSuccess = "reloadWindow",
               OnFailure = "displayAjaxError"
             })
   </div>


   <script type="text/javascript">
     $(document).ready(function(){
        $("#ajaxForm a").click(function (event) {
            $(this).attr('href', "/YourControllerName/AssignOwnership?techLogCode='Value1'amp;salesRepId= value2");
     });
     });
  

Комментарии:

1. Спасибо за помощь, это сработало для меня. Все еще изучаю ajax и jquery. У меня еще есть пути.

Ответ №2:

Почему бы не поместить выпадающий список в ajaxForm и не изменить ActionLink его на кнопку отправки? Включите techLogCode поле как скрытое поле