亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MVC:Razor:將 SelectList 的 SelectedValue 綁定到文本框

MVC:Razor:將 SelectList 的 SelectedValue 綁定到文本框

楊__羊羊 2022-12-09 15:07:07
我有一個模型和一個帶有選擇框和幾個文本框的視圖。我正在嘗試通過以下方式將文本框值綁定到選定的列表項:模型:public class Items{    public string ID { get; set; }    public string Name { get; set; }            public SelectList ItemList { get; set; }    public List<SelectListData> MiscList { get; set; }}public class SelectListData{    public string ID { get; set; }    public string Name { get; set; }    public string Address{get; set;}    public string City{get; set;}    public string State{get; set;}}Controller:控制器:public async public async Task<IActionResult> Index(){    Items viewModel = new Items();        List<SelectListData> tempLIst = new List<SelectListData>();    tempLIst.Add(new SelectListData() { ID = "1", Name = "ID-1", Address="123 AVE", City = "New City", State = "CA"});    tempLIst.Add(new SelectListData() { ID = "2", Name = "ID-2", Address="234 AVE", City = "New City", State = "CA"});    tempLIst.Add(new SelectListData() { ID = "3", Name = "ID-3", Address="345 AVE", City = "New City", State = "CA"});    tempLIst.Add(new SelectListData() { ID = "4", Name = "ID-4", Address="456 AVE", City = "New City", State = "CA"});            viewModel.ItemList = new SelectList(tempLIst, "ID", "Name", 2);    viewModel.SelectListData = tempLIst;    return View(viewModel);}View:@Model Items<div class="form-group">    <label class="col-lg-2 control-label">Account</label>    <div class="col-lg-10">        <div class="input-group col-lg-10">            <span class="input-group-addon">                <i class="fa fa-globe" aria-hidden="true"></i>            </span>            <select asp-for="ID" asp-items="@Model.ItemList" class="form-control" onchange="OnSelectedIndexChanged_01(this)"></select>                        </div>      我正在嘗試將下拉列表的 selectedValue 綁定到選定的地址。任何幫助表示贊賞。
查看完整描述

2 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

http://img1.sycdn.imooc.com//6392debb00014f3706460100.jpg

請在視圖中嘗試以下代碼片段:對代碼進行了更改


 @model Items; 

 @{var selectedAddress=string.Empty;}

<div class="form-group">


    <label class="col-lg-2 control-label">Account</label>

    <div class="col-lg-10">

        <div class="input-group col-lg-10">

            <span class="input-group-addon">

                <i class="fa fa-globe" aria-hidden="true"></i>

            </span>


            <select asp-for="ID" asp-items="@Model.ItemList" class="form-control"></select>                

        </div>

        @{                 

            if(Model.ItemList != null) {

                 selectedAddress = Model.MiscList.SingleOrDefault(c => c.ID == Model.ItemList.SelectedValue.ToString()).Address;

            }

        }

        

        <div>

             <input id="selAddress" value="@selectedAddress" />   


        </div>

        


    </div>

</div>

我相信您設置的所選項目


if(Model.ItemList != null) {

                 selectedAddress = Model.MiscList.SingleOrDefault(c => c.ID == Model.ItemList.SelectedValue.ToString()).Address;

            } 

而不是代碼中的 Model.ID。


下拉變化事件可以通過以下Javascript代碼片段實現:


$(document).ready(function () {

        $('#ID').change(function () {

            var selectedValue = $(this).val();

            var misclist = @Json.Serialize(@Model.MiscList.ToList());

            for(i=0;i<misclist.length;i++){

                if(misclist[i].id == selectedValue) {

                    $('#selAddress').val(misclist[i].address);

                    break;

                }

            }

            

         });

     });


查看完整回答
反對 回復 2022-12-09
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

我的問題有兩個問題。@ScareCrow 為我的第一個問題提供了解決方案,并幫助我找出了第二個問題的解決方案。這是一個更新的 javascript 函數(鍵值是小寫的):


function OnSelectedIndexChanged_01(value, jsdata) {

    var selectedID = value.options[value.selectedIndex].value;

var selectedText = value.options[value.selectedIndex].text;

var myArray = [];

var jsdata = @Json.Serialize(@Model.MiscList.ToList()); 

//myArray = JSON.parse(jsdata); ===> this line throws "Unexpected token o in JSON at position 1"; commenting this worked out; jsdata is already a javascript object

myArray = jsdata; 

for (var i = 0; i < myArray.length; i++) {

    if (myArray[i].id == selectedID) {

        var Address = document.getElementById("selAddress");

        Address.value = "";

        Address.value = myArray[i].address.toString();

        break;

    }

}

}


查看完整回答
反對 回復 2022-12-09
  • 2 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號