将输入值发送到ActionLink

时间:2017-05-23 12:03:56

标签: javascript jquery asp.net-mvc

输入值:

<input type="text" id="quantity" value="1" size="2"/>

ActionLink替换为Url.Action:

<a href="@Url.Action("AddToCart", "Shop", new {parts_id=@Model.Parts.parts_id, quantity = "xxx"})" id="lnk">To cart</a>

和JS,我正在尝试替换值:

 <script>
 $("#lnk").click(function (evt) {
     var fakeUri = $("#lnk").prop("href");
     var uri = fakeUri.replaceWith("xxx", $("#quantity").val());
     uri = $("#lnk").prop("href", uri);
 });
</script>

我认为问题出在JS中,值不是替换,客户端发送“xxx”

2 个答案:

答案 0 :(得分:0)

这应该有效

href="@Url.Action("AddToCart"

的问题之一

它会返回href,看起来像@Url.Action("addToCart",仅此而已。因为"

或者您可以执行此操作<a href="@(Url.Action("AddToCart", "Shop ", new {parts_id=@Model.Parts.parts_id, quantity = "xxx "}))">

^在()

周围添加url

&#13;
&#13;
$("#lnk").click(function(event) {
  event.preventDefault();
  var fakeUri = $("#lnk").attr("href");
  var uri = fakeUri.replace("xxx", $("#quantity").val());
  uri = $("#lnk").attr("href", uri);
  window.location = uri;
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="quantity" value="1" size="2" />

<a href='@Url.Action("AddToCart", "Shop ", new {parts_id=@Model.Parts.parts_id, quantity = "xxx "})' id="lnk">To cart</a>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

让我们尝试不同的方式, 首先我们为数量变化添加事件监听器,每次发生时,我们都会替换href属性值,注意我们应该使用attr而不是prop 像这样的东西

<a href="#" id="lnk">To cart</a>

js

$(document).on("change","#quantity",function () {
   var qnty = $("#quantity").val();
  var theuri = "@Url.Action("AddToCart", "Shop")?parts_id=@Model.Parts.parts_id&quantity="+qnty;
 $("#lnk").attr("href", theuri);
});