2012-07-06 78 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

相关问题