如何使用具有相同视图的 mvc5 将下拉列表中的选定值从 Dropdownlist 传递到文本框?

how to pass dropdown selected value from Dropdownlist to a textbox using mvc5 with same view?

我是 mvc.As 初学者,我正在尝试通过单击按钮将下拉列表值从 DropdownList 传递到同一视图中的文本框。 我做了一些代码。但不起作用。我可以在播种列表中填充数据,但实际上提交更改事件不起作用。 我怎样才能克服这个问题。 这是我的形象 Dropdownlist to textbox

我的Dropdown.cshtml查看代码在这里-

@model LoginForm.Models.UserModel

@{
                ViewBag.Title = "Dropdown";
}

<h2>Dropdown List</h2>

<div class="form-horizontal">

</div>

@using (Html.BeginForm("Dropdown", "Home", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
    @Html.AntiForgeryToken()


    <div class="form-group" style="padding-top:50px">
        @Html.LabelFor(model => model.UserName, new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @(Html.DropDownList("DropdowenList", new SelectList(ViewBag.AllNameList, "CustomerId",
                                                                                "UserName", 0), "Select ...", new { @class = "form-control" }))

        </div>
    </div>


    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Submit" class="btn btn-default" />
            <br />
            <br />
            @Html.TextBox("txtName")

        </div>
    </div>

}

    <script type="text/javascript">
        $(function () {
            $('#DropdowenList').change(function () {
                var selectedValue = $(this).val();
                $('#txtName').val(selectedValue);
            });
        });
    </script>

我的HomeCoontroller.Cs代码在这里-

 [AllowAnonymous]
    public ActionResult Dropdown(string returnUrl)
    {
        ViewBag.Flag = true;
        DropdowncCass dp = new DropdowncCass();
        var allName = dp.GetUserInfo();
        ViewBag.AllNameList = allName;
        Session["allName"] = allName;
        ViewBag.ReturnUrl = returnUrl;
        return View();

    }

您可以处理提交按钮的 click 事件来实现您的目标,并使用带有 text() 功能的 option:selected 选择器从下拉列表的选定项目文本中设置文本框值:

$(function () {
     $('.btn').click(function (e) {
         e.preventDefault();
         var selectedValue = $("#DropdowenList option:selected").text();
         $('#txtName').val(selectedValue);
     });
});

e.preventDefault() 在这里是必需的,因为您正在使用 BeginForm 帮助程序,它呈现 <form> 标记和用于防止将表单发回控制器的默认按钮提交行为的函数动作。

This fiddle 包含说明所需行为的工作示例。