如何使用 ASP.NET MVC 将数据从视图文本框传递到控制器

How to pass data from the View textbox to Controller using ASP.NET MVC

我想将 数据 从文本框值传递到控制器。文本框值是它的字符串,在控制器上,它必须转换为双精度。但是我似乎在下面提供的代码上失败了。我不知道为什么代码不起作用。

===查看代码===

 @using (Html.BeginForm("OnceOff"))
  {
    <div class="container">
     <div class="bg hidden-sm"></div>

      <div class="row">
     <div class="col">
            <div class="panel panel-info">
                <div class="panel-heading">
                    <h3 class="panel-title">Once-Off Payment</h3>
                </div>

                <div class="panel-body">

                    <input type="text" id="smsbundles" name="smsbundles" value="50" />

                </div>
                <div class="text-right">
                    @Html.ActionLink("Buy Now", "OnceOff", "Home", new { area = "" }, new { @class = "btn btn-block btn-success" })

                </div>
            </div>


        </div>

     </div> 
  </div>
           }

===控制器===

   public ActionResult OnceOff(string smsbundles)
    {
        double bundle = Convert.ToDouble(smsbundles);
        var onceOffRequest = new PayFastRequest(this.payFastSettings.PassPhrase);

        // Merchant Details
        onceOffRequest.merchant_id = this.payFastSettings.MerchantId;
        onceOffRequest.merchant_key = this.payFastSettings.MerchantKey;
        onceOffRequest.return_url = this.payFastSettings.ReturnUrl;
        onceOffRequest.cancel_url = this.payFastSettings.CancelUrl;
        onceOffRequest.notify_url = this.payFastSettings.NotifyUrl;

        // Buyer Details
        onceOffRequest.email_address = "";

        // Transaction Details
        onceOffRequest.m_payment_id = "***";
        onceOffRequest.amount = bundle;  //30 or 50
        onceOffRequest.item_name = "Once off option";
        onceOffRequest.item_description = "Some details about the once off payment";

        // Transaction Options
        onceOffRequest.email_confirmation = true;
        onceOffRequest.confirmation_address = "****";

        var redirectUrl = $"{this.payFastSettings.ProcessUrl}{onceOffRequest.ToString()}";

        return Redirect(redirectUrl);
    }

您的输入 smsbundles 是表单中的输入元素。 您正在使用 ActionLink 帮助器,它生成 <a> 不提交表单的元素。这就是使用 smsbundles.

的空值调用控制器操作代码的原因

将您ActionLink替换为常规提交按钮:

<input type="submit" value="Buy Now" class="btn btn-block btn-success" />