我正在从数据库中提取一些数据,所以当您从下拉列表中选择人名时,表单中的文本字段"Login“应该会自动完成他的详细信息。
现在它一直是空的。
我确信,在@HtmlEditorFor上添加javascript数据时会出现一些问题。
如果我做错了什么,你能看看吗?
谢谢你提前给我时间。
视图:
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>User</legend><div class="editor-label">
@Html.LabelFor(model => model.UserLogin)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.UserLogin, new {id ="LoginId" })
@Html.ValidationMessageFor(model => model.UserLogin)
</div>
}
<script type="text/javascript">
$('#UserID').on('change', function () {
$.ajax({
type: 'POST',
url: '@Url.Action("GetUserForm")',
data: { ID: $('#UserID').val() },
success: function (results) {
var options = $('#LoginId');
options.empty();
$.each(results, function () {
options.append($().val(this.ID).text(this.Value));
});
}
});
});
</script>控制器:
[HttpPost]
public JsonResult GetUserForm(string ID)
{
//pseudo code
var data = from s in StaffDB.StaffData
where s.Forename1 + ' ' + s.Surname == ID
select new { Value = s.Login, ID = s.ID};
return Json(data);
}发布于 2014-01-28 05:05:14
使用
@Html.TextBoxFor(model => model.UserLogin, new {id ="LoginId" })作为
@Html.EditorFor(model => model.SomeProperty,ViewData)和
@Html.TextBoxFor(model => model.SomeProperty,htmlAttributes Object)或者在jQuery选择器通行证中
$('#UserLogin') 用于编辑器选择,因为它自动生成模型属性名称的ID。
https://stackoverflow.com/questions/21142070
复制相似问题