codegeekalpha Ответов: 1

Передача параметра с местоположением.href к действию.


Я пытаюсь передать параметры контроллеру из location.href.

но Линк не попал в действие. местоположение.href, кажется, в порядке .

Что я уже пробовал:

Код, который я пытаюсь использовать, таков

buttion запускающий код jqeury
<button id="getPrice" data-id="" class="btn btn-danger" data-dismiss="modal">GetPrice</button>


фактический код jquery

<pre lang="HTML"> $('#getPrice').click(function () {
                var discountAmount = $('#lblDiscountAmount').text();
                var productId = $(this).parent('td').parent('tr').attr('data-productid')
                alert(productId);
                alert(discountAmount);
                //if (!discountAmount) { return; }

                location.href = "Products/helloPrice?ProductId=" + productId;
               // This is not invoking the action method.

            });

этот actionmethod не срабатывает при отладке кода и ошибке ресурс не может быть найден а также как передать дополнительные параметры
public ActionResult helloPrice(int productid)
      {

          //String a = "produt ID id " + ProductId + "and priec" + ProductPrice;
          //string a = "hi";
          //ViewBag.MyString = "produt ID id " + ProductId +"yes";
          return View();
      }


а также как это можно сделать с помощью
@Html.ActionLink("HelloPrice", "helloPrice", new { id = item.Id }  , new {@class="myClass"}) 


@class = "myClass" используется для передачи дополнительного параметра discountAmount

Bryian Tan

пробовать

public ActionResult helloPrice(int id)

1 Ответов

Рейтинг:
1

Member 7870345

Я думаю, что проблема заключается в диссонансе между названиями параметров.

В своем коде jquery вы используете:

location.href = "Products/helloPrice?ProductId=" + productId;
(Обратите внимание, что этот параметр ProductId, с начальным P и I в верхнем регистре)

но в вашем контроллере этот параметр определен:
public ActionResult helloPrice(int productid)
(Обратите внимание, что все имена написаны в нижнем регистре)

Я думаю, что решение состоит в том, чтобы просто вызвать два параметра точно так же (включая верхний и Нижний регистры) как в контроллере, так и в коде jquery, то есть:
а) ProductId в обоих случаях
Б) или productid в обоих случаях

Надеюсь, это вам поможет.