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

标签 javascript asp.net-mvc

我有一个奇怪的问题。 我的产品详细信息 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/

相关文章:

javascript - 后台函数javascript

javascript - 正则表达式替换数千个逗号

asp.net-mvc - 复选框从 formcollection 返回 "true,false"而不是选择的值

c# - 发送电子邮件 MVC 时出错

javascript - 是什么导致我的视​​图 div 元素内的部分 View 变得瘫痪?

javascript - "npm isntall"命令存在

javascript - jQuery 函数语法?

JavaScript 构造函数模式

c# - 在 MVC 应用程序中搜索

asp.net-mvc - Azure Blob 文件存储策略