簡體   English   中英

c#asp.net mvc-使用參數從html.actionlink調用腳本函數

[英]c# asp.net mvc - calling script function from html.actionlink with a parameter

我有以下代碼 -

@model MyFirstProject.Models.Product

<script type="text/javascript">
    function AtC(prodid) {
        var url = "/Shopping/AddToCart/";
        $.post(url, { pID: prodid });
    }
</script>

<table style="background-color:gray; padding:20px;">
    <tr>
        <td>
            <h3 align="center">@Model.Title</h3>
            <p align="center" style="color:white">@Model.UploadDate.Day.@Model.UploadDate.Month.@Model.UploadDate.Year</p>
            <p align="center">@Model.ShortDescription</p>
        </td>        
    </tr>
    <tr>
        <td>@Html.ActionLink("Add to cart", "Index", "Shopping", null, new {onclick = "AtC()", @style="color: White;" })</td>
        <td>@Html.ActionLink("Show product details", "ProductDetails", new {pID = Model.ProductID}, new { @style = "color: White;" })</td>
    </tr>
</table>

我需要向AtC函數發送一個int:Model.ProductID。 我嘗試了幾種方法來修復它,但沒有任何效果。 請幫忙,因為我不知道該怎么辦。

更新感謝您,這正是我所需要的! 我的問題解決了!

這應該工作。

@Html.ActionLink("Add to cart", "Index", "Shopping", null, 
                     new { onclick = "AtC("+Model.ProductID+")", @style = "color: red;" })

我個人更喜歡使用簡潔的javascript,這樣我的標記就不會直接調用javascript方法。 為此,我們將在鏈接中添加一個ID。

由於要發布到Shopping / AddToCart方法,因此在構建操作鏈接時可以使用這兩個方法。

@Html.ActionLink("Add to cart", "AddToCart", "Shopping", new {@id=Model.ProductID},
                                          new { @id="addToCart", style = "color: green;" })

現在,在javascript中,監聽ID為“ addToCart”的錨定標記的click事件,然后執行ajax發布

$(function(){

   $("a#addToCart").click(function(e){
      e.preventDefault();
      $.post($(this).attr("href"),function(response){
          console.log(response);
      });    
   });

});

如果您要發送其他信息,則可以在鏈接中將其保留為html5數據屬性,並根據需要使用

@Html.ActionLink("Add to cart", "AddToCart", "Shopping", new { @id = Model.ProductID},
                  new { @id = "addToCart",data_size="large", style = "color: green;" })

在您的JavaScript中,您可以閱讀這些附加信息

$("a#addToCart").click(function(e){
    e.preventDefault();

    var d = { Size : $(this).data("size");
    $.post($(this).attr("href"),d,function(response){
          console.log(response);
    });    
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM