【发布时间】:2017-06-29 02:40:06
【问题描述】:
当用户从视图/FregihtTool.cshtml 中单击Next 按钮时,我试图将单击的按钮传递给控制器
@model ThanksTrucking.Models.Shipping
<h2>FreightTool</h2>
@using (Html.BeginForm("FreightTool", "Shipping"))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Calculator</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div row>
<div class="col-md-12">
<button class="col-md-3" type="button" id="PrintedMaterials" value="1" class="btn btn-secondary " ng-click="levelOU()">Printed Materials </button>
<button class="col-md-3" type="button" id="Machinery" value="2" class="btn btn-secondary " ng-click="levelCD()">Machinery</button>
<button class="col-md-3" type="button" id="PaperGoods" value="3" class="btn btn-secondary " ng-click="levelD()">Paper Goods </button>
<button class="col-md-3" type="button" id="MetalWood" value="4" class="btn btn-secondary " ng-click="levelF()">Metal & Wood Materials </button>
</div>
</div>
<div class="form-group">
<div class="col-md-12 text-right">
<input type="submit" value="Next" class="btn btn-success" />
</div>
</div>
</div>
}
现在我的 FreightController 看起来像这样:
// GET: Shipping/FreightTool
public ActionResult FreightTool()
{
return View();
}
// Post: Shipping/FreightTool
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult FreightTool(int categoryNum)
{
int FreightClass = 0;
switch (categoryNum)
{
case 1:
FreightClass = 50;
break;
case 2:
FreightClass = 60;
break;
case 3:
FreightClass = 70;
break;
case 4:
FreightClass = 80;
break;
default:
FreightClass = 0;
break;
}
return RedirectToAction("Create", "Shipping", FreightClass);
}
我想从视图中传递CategoryNum,控制器处理它并告诉它是哪个FreightClass。
【问题讨论】:
-
假设我理解 - 你可能最好使用收音机或复选框(取决于你需要什么)。如果您需要坚持使用
button,那么您正在使用Angular,这样您就可以“保留”该值(并且将在客户端/Angular 中类似地处理提交)。 Hth.
标签: asp.net asp.net-mvc twitter-bootstrap razor