c# - ViewModel 在 Post 操作中始终为空 [HttpPost]
问题描述
我向 Web 服务发送请求,得到的响应是名称和值的列表。我在视图中循环它们并呈现一个表单,以允许用户填写字段并提交它。但是视图模型总是在后期操作中返回 null。
这是我的观点:
<form method="post">
<div class="row register-form">
@foreach (var item in Model.FlowOutputModel)
{
<div class="col-md-6">
<div class="form-group">
<label for="@item.CharacteristicValue">
@item.CharacteristicName:
</label>
<input asp-for="@item.CharacteristicValue" type="text"
class="form-control"
placeholder="@item.CharacteristicName *" value="" required/>
</div>
</div>
}
<div class="col-md-12">
<input type="submit" class="btnRegister" value="Submit"/>
</div>
</div>
</form>
我的模型如下:
public class DecisionInputModel
{
public string FlowName { get; set; }
public List<FlowOutputModel> FlowOutputModel { get; set; }
}
public class FlowOutputModel
{
public string CharacteristicName { get; set; }
public string CharacteristicValue { get; set; }
}
我的控制器
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Index(DecisionInputModel decisionInput)
{
if (ModelState.IsValid)
{
_service.GetResults(decisionInput);
}
}
有什么建议么?
解决方案
用 for 替换循环 foreach 并向表单添加操作
<form method="post" action="@Url.Action("Index", "Home")">
<input asp-for="@Model.FlowName" type="text" class="form-control" />
// or maybe even better
@Html.TextBoxFor(model => model.FlowName, new { @class = "form-control" })
<div class="row register-form">
@for(int i=0; i < Model.FlowOutputModel.Count; i++)
{
<div class="col-md-6">
<div class="form-group">
<label for="@Model.FlowOutputModel[i].CharacteristicValue">
@Model.FlowOutputModel[i].CharacteristicName:
</label>
<input asp-for="@Model.FlowOutputModel[i].CharacteristicValue" type="text"
class="form-control"
placeholder="@Model.FlowOutputModel[i].CharacteristicName *" value="" required/>
</div>
</div>
}
<div class="col-md-12">
<input type="submit" class="btnRegister" value="Submit"/>
</div>
</div>
</form>
推荐阅读
- python-2.7 - with conn: AttributeError: __exit__ 使用套接字接收消息时
- java - 初始化时打印超出范围
- java - 每个 for 循环都打印在新行上,即使它不应该
- python - Python - 遍历一个列表并将每第 n 次迭代的 n 个值附加到一个向量
- javascript - 使用
在本地 - reactjs - React 页面在电话/Chrome 电话视图上冻结
- android - Android 未正确检测到意图操作
- linux - 从内核模块创建 POSIX 队列
- python - IndexError:索引 1080 超出轴 0 的范围,大小为 1080
- reactjs - 组件接收新道具但在使用 mapStateToProps 时内部引用未更新