我正在尝试通过标准MVC3模板附带的标准帐户控制器代码设置配置文件属性(ComplexID)。我正在使用jquery库中的自动完成小部件来设置从自动完成中选择值时隐藏字段的值。我添加的警报确认了setter,但是当我尝试保存文本框值时,我从Model.IsValid收到错误,说需要设置ComplexID。在帐户模型中,我将ComplexID字段设置为[Required]。我究竟做错了什么?感谢
<div>
<input type="text" name="q" id="complexes" />
@Html.HiddenFor(m => m.ComplexID, new { id="complexid"})
</div>
和Jscript是:
$("#complexes").autocomplete({
source: function(request, response) {
$.ajax({
url: "/Account/QuickSearch", type: "POST", dataType: "json",
data: { query: request.term },
success: function(data) {
response($.map(data, function(item) {
return { label: item.Name + " , " + item.Address1, value: item.Name, id: item.ComplexID };
}))
}
})
},
minLength: 3,
select: function(event, ui) {
var selecteditem = ui.item;
$("#complexid").text(selecteditem.id);
alert(ui.item ? ("You picked '" + selecteditem.label + "' and the hidden textbox now has a value of " + $("#complexid").text()) : "Nothing selected");
}
});
答案 0 :(得分:2)
改变这个:
$("#complexid").text(selecteditem.id);
在
$("#complexid").val(selecteditem.id);