MVC:使用 Bootstrap 按钮将参数发送到控制器中的操作
MVC: Send parameters to Action in Controller with Bootstrap button
查看:
@using (Html.BeginForm("UpdateMaterial", "MyController", FormMethod.Post, Model.MaterialId))
{
@Html.AntiForgeryToken()
<input type="submit" class="btn btn-primary custom" value="Derivate Material" />
}
控制器:
[HttpPost]
public ActionResult UpdateMaterial(int? matId)
{
if (matId == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
//do something here
}
我发送的Id总是空的。我该如何更改?
您的 Model.MaterialId
应该是一个表单元素:
@using (Html.BeginForm("UpdateMaterial", "MyController", FormMethod.Post))
{
@Html.HiddenFor(model => model.MaterialId)
@Html.AntiForgeryToken()
<input type="submit" class="btn btn-primary custom" value="Derivate Material" />
}
此外,您应该更改操作定义并使其接受模型的类型,而不是 int?
:
[HttpPost]
public ActionResult UpdateMaterial(MyModelType model)
{
if (model.matId == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
//do something here
}
查看:
@using (Html.BeginForm("UpdateMaterial", "MyController", FormMethod.Post, Model.MaterialId))
{
@Html.AntiForgeryToken()
<input type="submit" class="btn btn-primary custom" value="Derivate Material" />
}
控制器:
[HttpPost]
public ActionResult UpdateMaterial(int? matId)
{
if (matId == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
//do something here
}
我发送的Id总是空的。我该如何更改?
您的 Model.MaterialId
应该是一个表单元素:
@using (Html.BeginForm("UpdateMaterial", "MyController", FormMethod.Post))
{
@Html.HiddenFor(model => model.MaterialId)
@Html.AntiForgeryToken()
<input type="submit" class="btn btn-primary custom" value="Derivate Material" />
}
此外,您应该更改操作定义并使其接受模型的类型,而不是 int?
:
[HttpPost]
public ActionResult UpdateMaterial(MyModelType model)
{
if (model.matId == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
//do something here
}