C#asp.net mvc Set CheckBoxFor已检查的具有Model Value的属性
C# asp.net mvc Set CheckBoxFor checked-property with Model-Value
在我的表单中,我有一个复选框,当我单击该复选框时,就会启用一个文本框。当我提交表单时,我得到了两个值(复选框和文本框)和站点刷新,刷新后复选框被选中,但文本框被禁用,但有最后一个插入值。
如果我再次提交而没有做任何事情,文本框将返回null,而不是最后一个插入值。
我希望复选框从我的模型中获得值,并更改禁用文本框的属性的行为,如果没有新的值将被插入,它应该返回最后一个插入值。
当我将model属性设置为false时,复选框也会被选中。有人知道我能做什么吗?
视图:
@Html.TextBoxFor(m => m.FilterModel.FilterOrgNameValue, new { @class = "form-control", @id = "OrganisatioName", @disabled = "disabled" })
@Html.CheckBoxFor(m => m.FilterModel.FilterOrgNameIsCheckedValue, new { @class = "form-control", @id = "OrgNameChecked", @checked = (Model.FilterModel.FilterOrgNameIsCheckedValue ? "checked" : "unchecked")})
JavaScript:
$("#OrgNameChecked").click(function () {
$('#OrganisatioName').attr("disabled", $(this).is(':unchecked'));
});
型号:
public bool FilterOrgNameIsCheckedValue { get; set; }
控制器(通过提交调用的函数):
public ActionResult Index(AdminOrganizationModel m)
{
AdminOrganizationModel model = new AdminOrganizationModel();
if(TempData["model"] != null)
{
m = (AdminOrganizationModel)TempData["model"];
}
if(m.FilterModel == null)
{
m.FilterModel = new AdminOrganizationFilterModel();
}
model = m;
OrganizationBusinessObject organizationBusinessObject = new OrganizationBusinessObject(DbContext);
var organizations = DbContext.GetAllEntitiesQueryable<Organization>();
organizations = FilterOrganizations(organizations, model);
InitializeLicenseList(1);
AdminOrganizationModelBuilder modelBuilder = new AdminOrganizationModelBuilder();
IList<AdminOrganizationModel> organizationsModels = modelBuilder.GetModelCollection(organizations);
model.Organizations = new AjaxGridFactory().CreateAjaxGrid(organizationsModels.AsQueryable(), 1, false, 10) as AjaxGrid<AdminOrganizationModel>;
return View(model);
}
提交后的字段
Simple Solution;)
我在视图中添加了一个简单的if语句:
<div class="col-sm-2">
@if (Model.FilterModel.FilterOrgNameIsCheckedValue)
{
@Html.TextBoxFor(m => m.FilterModel.FilterOrgNameValue, new { @class = "form-control", @id = "OrganisatioName"})
}
else
{
@Html.TextBoxFor(m => m.FilterModel.FilterOrgNameValue, new { @class = "form-control", @id = "OrganisatioName", @disabled = "disabled" })
}
</div>
我想这不是最好的方法,但它有效=)
相关文章:
- 使用javascript和css选择器获取value属性的内容
- 为什么 HTML 中的 Value 属性在与 AngularJS 中的 ng-model 一起使用时不起作用
- Javascript:使用value属性对关联数组进行排序,而不转换为对象数组
- 为什么“value”属性为空,而“value”特性具有正确的值
- 如何使用 JavaScript 访问表单选择标签的 value 属性的内容或其内部文本
- 选择没有't具有querySelector的value属性
- 为什么输入对象的value属性不包含值
- value属性似乎不显示输入字段内容
- 为什么我可以't获取在select中定义的选项的value属性的值
- 为什么object.observe不适用于输入字段的value属性
- Jquery设置value属性时的奇怪行为
- Jquery改变"value"属性在XML元素中
- 使用jquery在li's的value属性中显示字符串值
- 从表sapui5中获取value属性
- HTML标签的value属性可以用来存储JavaScript代码吗?
- 使用json设置tag's value属性不工作
- 关于value属性中单词之间的空格的问题
- Javascript变量'的" Value "属性不会出现在智能感知上,而是显示的值
- 读取HTML表单的innerHTML与VALUE属性(&它的值)输入标签
- jQuery从select中移除选项,但不包含value属性