我在局部视图中有一个复选框
<div>Full time: @Html.CheckBoxFor(model => model.FullTime, new { htmlAttributes = new { id = "txtIsFullTime" } })</div>
在同一局部视图中我有这个Ajax代码:
<script>
var urlAction = "@Url.Content("~/Treeview/_NewEmpThird")";
function AjaxGoodRedirect(urlAction) {
console.log(urlAction);
$.ajax({
type: "POST",
url: urlAction,
data: JSON.stringify({ FullTime: $("#txtIsFullTime").val() }), //data: JSON.stringify({ ID: 1, Forename: "FName", Surname: "SName" }),
datatype: "JSON",
contentType: "application/json; charset=utf-8",
success: function (returndata) {
if (returndata.ok)
$("#detailView").load(returndata.newurl);
else
window.alert(returndata.message);
}
}
);
}
但它每次都会传回一个假值。
我对@ Html.EditorFor使用了相同的方法并且没有任何问题 - 任何人都可以帮助指出我哪里出错了吗?
谢谢:)
修改
认为问题是新的html attributes = new ..删除了(并纠正了错字)
div&gt;全职:@ Html.CheckBoxFor(model =&gt; model.FullTime,new {id =&#34; txtFullTime&#34;})
然后使用
数据:JSON.stringify({ID:$(&#34; #txtFullTime&#34;)。是(&#39;:已检查&#39;)?1:0})
并且不返回1或0。
答案 0 :(得分:0)
这是我在我构建的表单映射器中使用的内容:
switch (field.prop('type')) {
case 'checkbox':
newVal = this.checked;
break;
default:
newVal = field.val();
break;
}
因此,您可能需要将$("#txtIsFullTime").val()
更改为$("#txtIsFullTime").get(0).checked
或$("#txtIsFullTime").is(':checked')
<强>更新强>
我认为值1
或0
是因为Html.CheckBoxFor()
生成2个输入。一个用于值(0 | 1),一个用于状态(true | false)。这是对MVC级别的要求。
答案 1 :(得分:0)
我的猜测:
id = "txtIsFullTime"
$("#textIsFullTime")
ID不匹配