MVC HttpPost 接收一个空参数
本文关键字:一个 参数 HttpPost MVC | 更新日期: 2023-09-27 17:56:21
应用程序HomeController.cs中的控制器文件定义了两个控件SetPowerOff和[HttppPost] SetPowerOff。
public ActionResult SetPowerOff(int ID, string deepness)
{
.............
if (Request.IsAjaxRequest())
{
var viewModel = new HomeSetPowerOffViewModel()
{
//List of devices
Devicelist = list,
age = 18
};
return PartialView("_SetPowerOff", viewModel);
}
else
{
return HttpNotFound();
}
}
[HttpPost]
public ActionResult SetPowerOff(HomeSetPowerOffViewModel homeSetPowerOffViewModel)
{
}
分部视图返回列表中的设备。
@using (Html.BeginForm("SetPowerOff", "Home", FormMethod.Post, new { @class = "form-horizontal" }))
{
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">X</button>
<h3 id="myModalLabel">Devices information</h3>
</div>
<div class="modal-body ">
<div class="row-fluid">
<div class="span12">
<ul>
@foreach (var devices in Model.Devicelist)
{ <li>
@devices.Name;
</li>
}
</ul>
</div>
</div>
</div>
<div class="modal-footer">
@Html.ActionLink("Cancel", "Index", "Home", new { @class = "btn btn-danger" })
<button type="submit" class="btn btn-success">
Ok
</button>
</div>
}
在我按下部分视图上的确定按钮后,它会转到 HttpPost 请求。此处收到的 homeSetPowerOffViewModel 为空,年龄为 0。我非常想知道为什么要重置它们。谢谢你的时间!
您的表单中没有任何输入,因此无需提交任何内容
您的视图<form>
不包含表单字段,如age
字段的<input><select><textarea>
。
因此,当您提交时,它将被设置为默认整数值0
假设HomeSetPowerOffViewModel
age
属性是整数(int
)
在发布时,您会收到hidden
或任何其他输入字段(下拉列表、文本框等)。表单中没有此类字段。 (您没有以任何方式填充模型)
Althought,你可以用ajax提交,你可以将任何你想要的东西发送到你的控制器。