如何从http POST的视图中提取用户输入的文本数据
本文关键字:提取 用户 输入 数据 文本 视图 http POST | 更新日期: 2023-09-27 18:25:40
我已经为返回视图的CheckoutController
编写了一个基本的GET
方法,该视图将有文本框供我的用户输入付款信息和促销代码。如何在POST
方法中访问这些数据?
// GET: Checkout
public ActionResult PaymentsAndPromotions()
{
return View();
}
[HttpPost]
public ActionResult PaymentsAndPromotions()
{
var order = new Order();
try
{
if (db.Promotions !== PromoCode)
{
return View(order);
}
else
{
//save the order
db.Orders.Add(order);
db.SaveChanges();
//process the order
var cart = ShoppingCart.GetCart(this.HttpContext);
cart.CreateOrder(order);
return RedirectToAction("Complete", new object{id = order.OrderID});
}
}
catch
{
//invalid - redisplay with error
return View(order);
}
}
查看代码:
<form>
Payment Method:<br /><br />
Credit Card #: <br />
<input type="text" name="CreditCardNum" /><br />
Credit Card Type: <br />
<input type="text" name="CreditCardType" /><br/>
Promo Code: <br />
<input type="text" name="PromoCode"/> <br />
我建议您创建一个类似这样的模型:
public class Order
{
public string CreditCardNum { get;set; }
public string CreditCardType { get;set; }
public string PromoCode { get;set; }
}
从你的控制器,这样做:
public ActionResult PaymentsAndPromotions()
{
var order = new Order();
return View(order);
}
[HttpPost]
public ActionResult PaymentsAndPromotions(Order order)
{
//you can get all your order's property here.
//example:
if (order.CreditCardNum != "test123")
{
}
return View(order);
}
在你看来,你可以这样做(假设你使用的是剃刀语法):
@model Models.Order
@using (Html.BeginForm())
{
@Html.TextBoxFor(m => m.CreditCardNum)
@Html.TextBoxFor(m => m.CreditCardType)
@Html.TextBoxFor(m => m.PromoCode)
<input type="submit" value="Submit"/>
}
adirks95,在控制器中,您可以使用以下代码获取表单数据:Request.Form["CreditCardNum"]
。如果您还有任何问题,请告诉我。