应用程序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为null,年龄为0.我非常想知道为什么要重置它们。 谢谢你的时间!
答案 0 :(得分:3)
您的表单中没有任何输入,因此无需提交
答案 1 :(得分:1)
您的观看次数<form>
不包含<input><select><textarea>
字段的age
表单字段。
因此,当您提交时,它将设置为默认整数值0
假设age
的{{1}}属性是一种整数(HomeSetPowerOffViewModel
)
答案 2 :(得分:0)
在帖子上,您会收到hidden
或任何其他输入字段(下拉列表,文本框等)。您的表单中没有此类字段。 (你没有以任何方式填写模型)
虽然,您可以使用ajax提交,然后您可以将任何想要的内容发送给您的控制器