如何使用 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" />
我想将 数据 从文本框值传递到控制器。文本框值是它的字符串,在控制器上,它必须转换为双精度。但是我似乎在下面提供的代码上失败了。我不知道为什么代码不起作用。
===查看代码===
@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" />