我是MVC的新手
实际上,我在ASP.Net中有一个场景,我submitting data
(其中包含Amount,RedirectURL等)到URL
(支付网关),如下所示:
<form id="form1" runat="server" method="post" action="https://test2pay.ghl.com/IPGSG/Payment.aspx">
<div>
<%=eGHLPurchaseItems%>
<input type="submit" value="Pay Now" />
</div>
</form>
它将redirect to that payment gateway page
,成功完成交易后,我将redirected back to my application
页面上显示一些extra status codes
。
我按HttpContext.Current.Request["TransactionType"];
现在,我需要在MVC中这样做,但我唯一的困惑是如何提交表单。
我在MVC中尝试使用:
@using (@Html.BeginForm("https://test2pay.ghl.com/IPGSG/Payment.aspx", null, FormMethod.Post)){
<button type="submit" class="btn btn-lg b-primary">Proceed to Payment</button>
}
但是,我被重定向到此网址:
http://localhost:62414/Billing/https%3a/test2pay.ghl.com/IPGSG/Payment.aspx
任何人都可以帮助我如何使用MVC中的某些数据提交表单吗?
答案 0 :(得分:2)
为标签创建html或使用
您的控制器就像
ViewBag.CustId = "101";
ViewBag.Email = "cust@sss.sss";
并查看
@Html.BeginForm(null, null, FormMethod.Post, new {@action="https://test2pay.ghl.com/IPGSG/Payment.aspx"})
{
@Html.Hidden("id", @ViewBag.CustId);
@Html.Hidden("email", @ViewBag.Email);
<button type="submit" class="btn btn-lg b-primary">Proceed to Payment</button>
}
由于您尝试重定向到外部网址,请将Action
和Controller
设置为空。
答案 1 :(得分:0)
你也可以做一个ajax帖子,它比将表单发布到远程URL有一些优势。最重要的是,它使您有机会优雅地处理帖子可能发生的任何错误。
<form action="https://test2pay.ghl.com/IPGSG/Payment.aspx" name="frmPost">
</form>
$("form").submit(function() {
$.post($(this).attr("action"), $(this).serialize(), function(data) {
// here's where you check the response you got back from the post
if (!data.IsOK)
{
// the post didn't succeed... handle error here or something
}
else
{
// the post succeeded so redirect back to this page
window.location.href = '@Url.Content("~/")`;
}
});
});
然而,在实施此功能之前,您需要考虑一些事项。
我首先考虑的是你无法帮助你,但是对于第二个问题,我强烈建议使用Fiddler Web Debugger来检查帖子的结果。
HTH
答案 2 :(得分:0)
在你的模特中:
public string eGHLPurchaseItems { get; set; }
无论你做什么来设置eGHLPurchaseItems ......
在您的视图中
@using(Html.BeginForm(null, null, FormMethod.Post, new { id = "myForm" , @action="https://test2pay.ghl.com/IPGSG/Payment.aspx"}))
{
@Html.HiddenFor(model => model.eGHLPurchaseItems)
<button type="submit" class="btn btn-lg b-primary">Proceed to Payment</button>
}
<script type="text/javascript">
$(document).ready(function () {
$("#myForm").submit();
});
</script>