如何解决控制器方法未在ASP.NET MVC中显示Web表单
我的控制器中具有以下操作方法:
public RedirectResult OnlineInvoice(string PickupNo)
{
return Redirect("/ReportsWebForms/frmReportOnlineInvoice.aspx?PickupNo=" + 102);
}
我试图按以下方式调用该方法:
$.get("@Url.Action("OnlineInvoice","Report")",{ PickupNo : '@ViewBag.PickupNo'});
和
$.post("@Url.Action("OnlineInvoice",{ PickupNo : '@ViewBag.PickupNo'});
我在action方法上设置了一个断点,我可以看到它被调用了,但是Webform没有显示,网站仍然显示了当前视图。 但是,如果我通过如下链接来调用该方法:
<a href="/Report/OnlineInvoice">Report</a>
Web表单已正常加载!
有什么主意吗?
解决方法
您不能通过AJAX发出重定向。您正在通过javascript调用AJAX请求。
问题是,它正在您的控制器上返回重定向请求,而AJAX请求无法解释该请求。您需要使用JsonResult在控制器上返回JSON,并将URL传递到要重定向的位置。
然后从您对Javascript的get请求中,获取URL,然后可以使用:
window.location.href = "http://www.yourpassurlhere.com";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。