C# asp.net MVC - 使用参数从 html.actionlink 调用脚本函数
本文关键字:html actionlink 调用 函数 脚本 参数 net asp MVC | 更新日期: 2023-09-27 18:35:32
我有以下代码-
@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。我已经尝试了几种方法来修复它,但没有任何效果。请帮忙,因为我不知道该怎么办。
更新谢谢pλul'这正是我所需要的!我的问题解决了!
这应该有效。
@Html.ActionLink("Add to cart", "Index", "Shopping", null,
new { onclick = "AtC("+Model.ProductID+")", @style = "color: red;" })
我个人更喜欢做不显眼的javascript,这样我的标记就不会对javascript方法进行任何直接调用。为此,我们将向链接添加一个 ID。
由于您正在发布到购物/添加到购物车方法,因此您可以在构建操作链接时使用这 2 个。
@Html.ActionLink("Add to cart", "AddToCart", "Shopping", new {@id=Model.ProductID},
new { @id="addToCart", style = "color: green;" })
现在在javascript中,收听id为"addToCart"的锚标签的点击事件,然后做你的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);
});
});