gpt4 book ai didi

Javascript 代码无法将我带到所需的 Controller MVC

转载 作者:行者123 更新时间:2023-12-03 04:54:09 24 4
gpt4 key购买 nike

我有一个奇怪的问题。我的产品详细信息 View 上有一个链接,必须导航到购买页面。

如果我使用此链接,它将导航到所需的页面

  <a href="@Url.Action("PurchaseProduct", "Purchase", new { id = Model.ID, name = Model.Name})" id="link">
Buy
</a>

但是我需要数量信息,因此我必须通过 javascript 解决此问题,以将数量作为参数发送到 Controller

我尝试了很多方法:

<a href="#" id="link" onclick="return test();">
Buy
</a>
<a href="javascript:test();">More >>></a>

这是我的 JavaScript 代码:

<script>
function test() {
var UrlSettings = {
url: '@Url.Action("PurchaseProduct", "Purchase")'
}
var selectedId = @Model.ID;
var selectedName = $('#name').val();
var quantity = $('#quantity').val();

$.ajax({
url: UrlSettings.url,
data: { 'id' : selectedId, 'name' : selectedName, 'quantity' : quantity },
type: "post",
cache: false,
success: function (savingStatus) {
// $("#hdnOrigComments").val($('#txtComments').val());
// $('#lblCommentsNotification').text(savingStatus);
},
error: function (xhr, ajaxOptions, thrownError) {
//$('#lblCommentsNotification').text("Error encountered while saving the comments.");
}
});
};
</script>

使用这段 JavaScript 代码,它会进入 Controller 方法,但奇怪的是它什么也没做。不转到 PurcahseProduct 页面,保留在详细信息页面上。 这是我的 Controller :

enter image description here正如我所说,如果我使用此链接,它将导航到购买产品页面。

你知道我做错了什么吗?什么会导致这种奇怪的行为?

最佳答案

它的行为方式与您描述的方式相同,因为您使用 ajax 将数据发布到服务器。因此,您可以在 $ajax.success 回调中手动重定向到所需的页面,或者使用正确的表单在不使用 ajax 的情况下提交数据

@Html.BeginForm("PurchaseProduct", "Purchase", new { id = Model.ID, name = Model.Name })
{
@Html.DropDownListFor(m => m.Name)
@Html.TextBoxFor(m => m.Quantity)

<button type="submit">submit</button>
}

关于Javascript 代码无法将我带到所需的 Controller MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42505842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com