[英]Jquery Append & @Html.EditorFor
我从数据库中提取一些数据,因此当您从下拉列表中选择人员姓名时,表单中的“登录”文本字段应自动填写其详细信息。
目前它一直空着。
我确信在尝试在@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);
}
采用
@Html.TextBoxFor(model => model.UserLogin, new {id ="LoginId" })
如
@Html.EditorFor(model => model.SomeProperty,ViewData)
和
@Html.TextBoxFor(model => model.SomeProperty,htmlAttributes Object)
或者在jQuery选择器传递中
$('#UserLogin')
对于编辑器选择,因为它自动生成模型属性名称的ID
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.