c# - 使用 TextBoxFor 更改模型字段并将模型传递给控制器
问题描述
我有一个具有视图模型属性的模型:
public class FilterModel
{
[DisplayName("Start")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{MM/dd/yyyy HH:mm}")]
public DateTime StartDate { get; set; }
[DisplayName("End")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{MM/dd/yyyy HH:mm}")]
public DateTime EndDate { get; set; }
public bool ShowActive { get; set; }
}
我的视图更新StartDate
和EndDate
模型使用TextBoxFor
:
@using (Html.BeginForm("ApplyFilter", "Shipment", FormMethod.Post))
{
<div class="input-group">
<button type="submit" class="btn btn-default btn-sm" style="margin: 3px">
<i class="fa fa-check"></i>
</button>
@Html.TextBoxFor(m => m.Filter.StartDate, new { @minlength = "4", @maxlength = "20", @style = "margin: 3px; border: solid 1px #d5d5d5;" })
@Html.TextBoxFor(m => m.Filter.EndDate, new { @minlength = "4", @maxlength = "20", @style = "margin: 3px; border: solid 1px #d5d5d5;" })
</div>
}
控制器中的方法ApplyFilter
:
public ActionResult ApplyFilter(FilterModel filter)
{
var vm = Load(filter);
return View("Index", vm);
}
属性StartDate
和EndDate
正确更新,但属性ShowActive
始终设置为False
。调用方法时,该属性ShowActive
不会将其在视图中的当前值传递给控制器ApplyFilter
。
解决方案
您必须将 ShowActive 添加到您的视图中
@using (Html.BeginForm("ApplyFilter", "Shipment", FormMethod.Post))
{
@Html.HiddenFor(m => m.ShowActive)
....
}
推荐阅读
- lstm - FastAi LSTM 前向方法问题
- magento2 - magento 2自定义主题预览图像未显示在管理员中
- ubuntu-18.04 - 如何在 ubuntu 18.04 中长时间运行 Maria DB
- javascript - 状态栏添加额外的填充 React-native
- python - sklearn 中 MLPClassifier 的 predict_proba() 函数输出总可能性不等于一
- flutter - 如何在 Flutter 中找出 Widget 出现/消失的时间?
- python - 这可能是因为 cuDNN 初始化失败,因此请尝试查看上面是否打印了警告日志消息。[操作:Conv2D]
- python - 使用 Pil 将图像存储在列表中并在浏览器中检索这些图像
- flutter - flutter pub publish:找不到名为“dry-run”的选项
- javascript - 角度状态管理