繁体   English   中英

Jquery Append&@ Html.EditorFor

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM