2012-07-06 79 views
0

嗨我想用asp.net mvc3開發一個web應用程序我有一個視圖,當用戶選擇下拉列表文本框時必須包含一個下拉列表自動填寫如何在控制器中執行此操作我想將代碼放入我的視圖中?根據控制器的下拉選擇填充多個文本框asp.net mvc3

+0

對不起,我不想把代碼放在視圖中,只是在控制器中謝謝。 – 2012-07-06 10:32:00

+0

MVC中沒有用於下拉的Autopostback屬性。我能想到的一種方法是使用JQuery來填充它。 – 2012-07-06 10:38:27

回答

0

假設你有HTML標記這樣

<select id="states"> 
    <option value="1">MI</option> 
    <option value="1">MI</option> 
</select> 
<input type="text" id="txtCity1" value="" /> 
<input type="text" id="txtCity2" value="" /> 

該腳本應填寫數據,假設你有jQuery的加載到你的頁面。

$(function(){ 
$("#states").change(function(){ 
    var itemVal=$(this).val(); 
    $("#txtCity1").val("Selected item is "+itemVal); 
    $("#txtCity2").val("Ann Arbor"); 
}); 
}); 

工作樣本:http://jsfiddle.net/JuAhm/4/

如果你正在尋找一種方式,把服務器上的數據,並在文本框中填寫,你應該做一個jQuery的Ajax調用並獲得JSON格式的數據和讀取JSON並將值設置爲不同的文本框。這樣

$(function(){ 
$("#states").change(function(){ 
    var itemVal=$(this).val(); 

    $.getJSON("Url.Action("GetCities","State")"+"?id=itemVal,function(data){ 
     if(data.Status=="True") 
     { 
      //you may set the textbox values here by reading json result here 
      //ex : $("#txtCity2").val(data.Status); 
      //If you want to loop thru each items under Cities 
      $.each(data.Cities,function(index,item){ 
      // alert(item.Name) 
      }); 
     } 
     else 
     { 
      alert("No data found!"); 
     } 

    });   

}); 
}); 

假設你的控制器名稱事情是State和你有一個HTTPGET操作方法稱爲GetCities其中有一個叫id參數,按以下格式返回JSON數據。

{ 
    "Status": "True", 
    "Cities": [ 
       { "ID": "1", "Name": "Ann Arbor" }, 
       { "ID": "2", "Name": "Detroit"} 
       ] 
} 
+0

謝謝你,但下拉列表從模型級聯汽車註冊文本框顯示在同一模型中汽車的其他信息可以幫助我這樣嗎? – 2012-07-06 12:53:00

+0

@NasnousaBh:請在撰寫問題時更具體。這會給你更好的答案。看到我更新的答案(通用版本從服務器端獲取數據) – Shyju 2012-07-06 12:59:06

+0

好的,謝謝,我會做 – 2012-07-06 13:54:39

相關問題