Javascript c#asp.net mvc-使用参数从html.actionlink调用脚本函数
我有以下代码-Javascript c#asp.net mvc-使用参数从html.actionlink调用脚本函数,javascript,c#,asp.net-mvc,razor,onclick,Javascript,C#,Asp.net Mvc,Razor,Onclick,我有以下代码- @model MyFirstProject.Models.Product <script type="text/javascript"> function AtC(prodid) { var url = "/Shopping/AddToCart/"; $.post(url, { pID: prodid }); } </script> <table style="background-color:gr
@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>
@model MyFirstProject.Models.Product
功能AtC(prodid){
var url=“/Shopping/AddToCart/”;
$.post(url,{pID:prodid});
}
@模型名称
@Model.UploadDate.Day.@Model.UploadDate.Month.@Model.UploadDate.Year
@Model.ShortDescription
@ActionLink(“添加到购物车”、“索引”、“购物”,null,新的{onclick=“AtC()”,@style=“color:White;”)
@ActionLink(“显示产品详细信息”,“产品详细信息”,新的{pID=Model.ProductID},新的{@style=“color:White;”)
我需要向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”的锚定标记的点击事件,然后发表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);
});
});
这应该行得通
@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”的锚定标记的点击事件,然后发表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);
});
});
尝试编写javascript:AtC();取而代之的是“索引”、“购物”。让我快速编辑一下:现在发生的事情是,您将访问一个链接,而没有激活javascript函数(您正在同时执行这两个操作),并且此页面移动会干扰您的函数运行。这将起作用:new{onclick=“AtC”(“++@Model.ProductID+”)尽管使用ActionLink没有任何意义,因为除了添加onclick handler之外,您没有使用ActionLink做任何事情。请尝试编写javascript:AtC();而不是“索引”、“购物”。让我快速编辑一下:现在发生的事是,您要访问一个链接,而不是激活javascript函数(您同时执行这两项操作)并且此页面移动会干扰您的函数运行这将起作用:new{onclick=“AtC(“++@Model.ProductID+”)”尽管使用ActionLink没有任何意义,因为除了添加onclick处理程序之外,您没有对ActionLink执行任何操作