【问题标题】:how to post values to certain url using razor form in asp.net mvc 5如何在asp.net mvc 5中使用剃刀形式将值发布到某些url
【发布时间】:2019-12-11 18:56:30
【问题描述】:

我正在使用 Atom 支付网关并完成支付部分,现在我正在处理他们建议的文档中的退款部分 我必须使用表单和操作用作 Atom 给出的 URL,例如

<form action="https://paynetzuat.atomtech.in/paynetz/rfts" method="POST">
    <input type="hidden" name="merchantid" value="197" />
    <input type="hidden" name="pwd" value="VGVzdEAxMjM=" />
    <input type="hidden" name="refundamt" value="200.00" />
    <input type="hidden" name="txndate" value="2019-01-08" />
    <input type="hidden" name="merefundref" value="123" />
    <input type="hidden" name="atomtxnid" value="25631" />
    Submit : <input type="submit" name="submit" value="Submit" />
</form>

但在我的项目中,我必须使用 razor 形式通过 mvc 实现这一点,我必须使用控制器来获取退款、当前日期和 merefundref 的信息

如果我使用演示隐藏值,那么我会得到响应

但在我的项目中,我必须使用控制器方法来获取这些值,然后发布到给定的 url。 在他们给出的文档中,该方法应强制为 HttpPost ,否则 Url 将不会给出预期的响应。

在我的项目中,我使用了带有控制器方法和 http POST 方法的剃须刀表单,然后我将使用该方法,但无法将上述值发布到该特定 url

这是我的剃须刀形状

@using (Html.BeginForm("Index", "Refund", FormMethod.Post))
{
     <input type="hidden" name="merchantid" value="197" />
    <input type="hidden" name="pwd" value="VGVzdEAxMjM=" />
    <input type="text" name="atomtxnid" value="100004487215" />
    <input type="hidden" name="refundamt" value="200.00" />
    <input type="hidden" name="txndate" value="2019-01-08" />
    <input type="hidden" name="merefundref" value="25631" />
    <input type="submit" name="submit" value="Submit" />
}

这是我的控制器方法

     [HttpPost]
    public ActionResult Index()
    {
        return Redirect("https://paynetzuat.atomtech.in/paynetz/rfts");
    }

在正常的 Html 表单中,我使用给定 url 的操作,并通过隐藏和文本字段传递值,但在我的情况下,我想通过控制器方法将值发布到该 url,请帮助我处理这个“https://paynetzuat.atomtech.in/paynetz/rfts”url

请建议我通过控制器方法将上述值发布到此

【问题讨论】:

  • 您是将值传递给 url 还是将值传递给控制器​​然后再传递给 url?

标签: c# asp.net-mvc razor http-post payment-gateway


【解决方案1】:

如果您只是为项目的控制器和操作传递值的前两个 null,@action = .... 是您要发布的 url 的部分

@Html.BeginForm(null, null, FormMethod.Post, new {@action="https://paynetzuat.atomtech.in/paynetz/rfts"}
    <input type="hidden" name="merchantid" value="197" />
    <input type="hidden" name="pwd" value="VGVzdEAxMjM=" />
    <input type="text" name="atomtxnid" value="100004487215" />
    <input type="hidden" name="refundamt" value="200.00" />
    <input type="hidden" name="txndate" value="2019-01-08" />
    <input type="hidden" name="merefundref" value="25631" />
    <input type="submit" name="submit" value="Submit" />

)

但是如果你想先对传递的隐藏值做点什么,就先在方法中捕获

//all of the values you will post is 
//acceptable in string, 
//so i will just use string, but it will depend on you 
//if there is a type you want to use.
[HttpPost]
public ActionResult Index(string merchantid, string pwd, string atomxnid, string refundamt, string txndate, string merefundref)
{
    //do something
    //return it to a view as a model
    //do step above with html.hiddenfor(model => model.prop1/prop2);
    return View(model);
}

【讨论】:

  • 实际上我想转到控制器方法,然后在控制器中我想插入字段,然后想将该字段作为隐藏字段发布到 url,所以理想的响应是显示这个的 url xml响应中的隐藏参数
  • @shreyas35 感谢您提供的信息,我会在完成一些项目后对其进行编辑
猜你喜欢
  • 2016-03-07
  • 1970-01-01
  • 2017-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-31
  • 2011-04-12
  • 2011-06-09
相关资源
最近更新 更多