使用 jQuery 调用控制器方法,但方法不会重定向到其相应的视图



我有一个页面"GetData.cshtml",我需要在其中填写一些文本框数据并发送到控制器方法。我正在使用jquery将数据发送到控制器方法。

//GetData.cshtml
$(document).ready(function () {
$('#btn_sbmt_recommendation').click(function () {            
$.post("/RegistrationModels/Registration_card",
{
firm_id: $('#id_reg_id').val(), 
amount: $('#id_amount').val()
});
console.log("job done....");
});
})

调试应用时,控制器方法调用成功。

public ActionResult Registration_card(string reg_id, string amount)
{
try
{
// code block
return View(updated_firm);
}
catch (Exception ex) { throw; }
}

根据我的要求,我想在页面中显示数据Registration_card.cshtml但它不会重定向到页面。 将显示 jquery 块中console.log("job done....");的控制台消息。这意味着页面再次返回到GetData.cshtml。是由于使用jquery调用控制器方法吗? 通过 jquery 调用控制器方法Registration_card后如何转到第Registration_card.cshtml页。

我也尝试了下面的代码,但它也不起作用。

public ActionResult Registration_card(string firm_id, string ward_calani_num, string amount)
{
try
{
// code block
return RedirectToAction("Registration_card", updated_firm);
}
catch (Exception ex) { throw; }
}

根据您的问题,您似乎想通过将一些数据从GetData.cshtml到实际显示Registration_card.cshtmRegistration_cardActionMethod来重定向/转到GetData.cshtmlRegistration_card.cshtm

如果上述情况为真,则不需要Ajax Post请求,因为您的ActionMethodHttpGet,因为您没有指定它HttpPost。因此,解决方法可以类似于以下代码。

$(document).ready(function () {
$('#btn_sbmt_recommendation').click(function () {
var id_reg_id=$('#id_reg_id').val();   
var id_amount=$('#id_amount').val();         
location.href=`/RegistrationModels/Registration_card?reg_id=${id_reg_id}&amount=${id_amount}`;

//$.post("/RegistrationModels/Registration_card",
//    {
//        firm_id: $('#id_reg_id').val(),
//        amount: $('#id_amount').val()
//    });
//console.log("job done....");
});
})

如果要重定向页面,您应该使用 javascript 或 jquery,因为当您使用 jquery 时,控制器无法进行重定向。

最新更新