当我们从@ Html.DropdownListfor中选择一个值时,如何填充@ Html.Textbox

时间:2016-11-08 16:04:42

标签: javascript html ajax asp.net-mvc-5

当我们在ASP.NET MVC5应用程序中选择@ Html.DropdownListfor中的值时,如何将数据填充到@ Html.Textbox中。哪个是通过使用脚本来填充文本框中的数据的更好方法,还是有其他方法可以做,如果可能的话给我一个例子。

2 个答案:

答案 0 :(得分:0)

我就是这样做的。使用JavaScript。您应该创建一个脚本,其中所有ajax调用都来自单个入口点。它更易于重用,维护和调试。请记住,此代码只是一个大纲,您将不得不清理它。不要按照建议点击服务器,并在每次下拉列表值更改时更新视图模型。这太荒谬了。我会全力解决这种情况。只需从XMLHttpRequest中提取视图模型,并在每次下拉列表更改时过滤当前数据。

步骤1:向控制器请求视图模型

//quick example
var xhr = new XMLHttpRequest();
xhr.open('GET', 'Controller/Methodname');
xhr.send(null);

第2步:获取ViewModel并将其存储在对象或变量中,或者将其存储在您想要的内容中

    //handle the call
    xhr.onreadystatechange = function () {
      var DONE = 4; // readyState 4 means the request is done.
      var OK = 200; // status 200 is a successful return.
      if (xhr.readyState === DONE) {
        if (xhr.status === OK) 
          ...xhr.responseText // 'This is the returned text. so store it somewhere'
        } else {
          console.log('Error: ' + xhr.status); // An error occurred during the request.
        }
      }
    };

第3步:为下拉列表添加onChange事件。

    onDropdownChange() {
       // based on what is selected, filter you data and populate the textbox
       document.getElementById("YourTextboxID").value = your value;      
    }

答案 1 :(得分:-1)

尝试类似这样的事情。

function ondropdownchange(){
    $.get("yourmethodurl", function(data, status){
         $('#yourtextbox').val(data);
    });
}