该视图不从控制器返回

时间:2019-10-22 04:33:24

标签: c# jquery ajax asp.net-mvc

我想通过onclick函数将数据携带到下一页。通过提供参数来携带所有数据,但不会从控制器返回View。请帮我。我在这里停留了两天,这是我的学校项目。

OnClick按钮:

<div class="row">
    <div class="col-sm-4"></div>
    <button class='btn bg-blue next' onclick="checkamt(@Model.TotalAmt)">Next</button>
</div>

控制器:

public ActionResult ComfirmPay(int e = 0, string TaxType = null, int CurrentAmt = 0)
{
    ViewBag.TotalAmt = e;
    ViewBag.CurrentAmt = CurrentAmt;            
    ViewBag.TaxType = TaxType;            

    return View("ComfirmPay");
}

Ajax:

function checkamt(e) {
   var amount = @ViewBag.CurrentAmt;

   if (amount < e) {
       alert('bad');
       window.location.href = 'http://localhost:22822/Home/PayTax';
   }
   else {
       alert('good');
       $.ajax({
                cache: false,
                url: '@Url.Action("ComfirmPay", "Home")',
                data: { e: e, taxtype: taxtype, currentamt: currentamt },
                beforeSend: function () {
              },
              success: function () {
              },
              complete: function () {                      
              }
          }) 
        }  
}

查看:

<div class="col-md-9 col-xs-9">
    <p class="text-muted">You have total <b class="text-green">@ViewBag.CurrentAmt</b> points</p>
</div>

2 个答案:

答案 0 :(得分:0)

删除ajax函数并执行

window.location.href = "@Url.Action("ComfirmPay", "Home")" + "?e=" + e + "&taxtype=" + taxtype + "&currentamt=" + currentamt

this上发表的评论进一步说明了您尝试执行的操作为何无效的原因。

答案 1 :(得分:0)

我认为出于您的目的,无需进行ajax调用。您可以按以下方式使用window.location.href

 function checkamt(e) {
   var amount = @ViewBag.CurrentAmt;
   if (amount < e) {
         window.location.href = 'http://localhost:22822/Home/PayTax';
   }
  else {
        window.location.href = '/Home/ComfirmPay?e='+e+'&taxtype='+taxtype+'&currentamt='+currentamt;
   }  
 }

和控制器

public ActionResult ComfirmPay(string e, string TaxType, string CurrentAmt)
{
  ViewBag.TotalAmt = e;
  ViewBag.CurrentAmt = CurrentAmt;            
  ViewBag.TaxType = TaxType;            
  return View();
}