Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 层叠下拉菜单_Javascript_Jquery_Asp.net Mvc 4 - Fatal编程技术网

Javascript 层叠下拉菜单

Javascript 层叠下拉菜单,javascript,jquery,asp.net-mvc-4,Javascript,Jquery,Asp.net Mvc 4,这是jquery函数- 现在我可以传递城市名称并将其保存到数据库中,但如何随城市名称的更改而更改位置。我在jquery上是零。无法理解这一行$.getJSON(localityUrl,{ID:$(this).val()},函数(data){plzzz建议我做一些更改-- <script type="text/javascript"> $(document).ready(function () { var localityUrl =

这是jquery函数- 现在我可以传递城市名称并将其保存到数据库中,但如何随城市名称的更改而更改位置。我在jquery上是零。无法理解这一行$.getJSON(localityUrl,{ID:$(this).val()},函数(data){plzzz建议我做一些更改--

     <script type="text/javascript">        
      $(document).ready(function () {
        var localityUrl = '@Url.Action("FetchLocalities")';
        var localities = $('#SelectedLocality');
          $('#SelectedCity').change(function () {  localities.empty();
            subLocalities.empty();
            $.getJSON(localityUrl, { ID: $(this).val() }, function (data) {
                if (!data) {
                    return;
                }
                localities.append($('<option></option>').val('').text('Please select'));
                $.each(data, function (index, item) {
                     localities.append($('<option></option>').val(item.Value).text(item.Text));
                   // localities.append($('<option data-lat=' + item.Latitude + ' data-lng=' + item.Longitude + '></option>').text(item.Text));
                });
            });
        })
       <div class="editor-label">
        @Html.LabelFor(model => model.SelectedCity)
        </div>
        <div class="editor-field">
            <select id="SelectedCity" name="SelectedCity">
                @foreach (var thisCity in Model.CityList)
                {
                    <option value="@thisCity.Name" data-lat="@thisCity.Latitude" data-long="@thisCity.Longitude" data-name="@thisCity.Name" >@thisCity.Name</option>
                }
            </select>
            @Html.ValidationMessageFor(model => model.SelectedCity)
    </div>
    public List<City> FetchCities()
      {
       List<City> cities = new List<City>();
       cities.Add(new City() { Id = 1, Name = "--Select Your City--", Latitude = 28.6139M, Longitude = 77.2090M });
       cities.Add(new City() { Id = 2, Name = "Faridabaad", Latitude = 28.4211M, Longitude = 77.3078M });
       return cities;
   }
     public List<Locality> FetchLocalities()
      {
       List<Locality> localities = new List<Locality>();
       localities.Add(new Locality() { Id = 1, CityName = "Faridabaad", Name = "East Faridabaad" });
       localities.Add(new Locality() { Id = 2, CityName = "Faridabaad", Name = "West Faridabaad" });
        return localities;
    }
        public JsonResult FetchLocalities(string name)
         {
           var data = _localityService.FetchLocalities()
            //.Where(l => l.CityId == Id)
            .Where(l => l.CityName == name)
            .Select(l => new { Value = l.CityName, Text = l.Name });
        return Json(data, JsonRequestBehavior.AllowGet);
    }

localityUrl
是您调用的url—在您的情况下,它应该是
var localityUrl='@url.Action(“FetchLocalities”,“yourControllerName”);

{ID:$(this).val()}
是传递给控制器的数据,在您的情况下,它必须是
{name:$(this).val()}
,因为您的方法具有参数
字符串名
(非ID)和
$(this)。val()
等于所选选项的值


function(data)
中的
data
是从控制器方法返回的数据,在您的例子中,是包含两个属性的对象集合,
Value
Text
,而不是使用$.getJSON()您可以对控制器操作进行ajax调用,并通过传递所需参数分别重新加载所有本地。

这正是
$.getJSON()
所做的!$.getJSON()是$.ajax()的简写符号,结果是Json。$.ajax({dataType:“Json”,url:url,data:data,success:success});我想跪在你面前,先生。你简直是天才。但我仍然无法理解我之前发送的ID参数和现在发送的name参数的位置。在我的整个代码中没有大写的ID参数。它是从哪里来的$.getJson()。在我获取位置之前,在下拉列表的选择选项中,它是这样的,
{ID:$(this).val()}
中的
ID
表示发送给控制器的名称/值对的名称。您可以将其保留为
ID
,并将方法更改为
public JsonResult FetchLocalities(字符串ID)
例如。或者它可以是`{name:$(this).val(),someValue}`并且方法应该是
publicJSONResult FetchLocalities(string name,string something)
最好的参考是。它用很好的示例记录了所有函数,例如methodhow to configureViewModel()方法将locality属性从selectList LocalityList{get;set;}更改为List LocalityList{get;set:}当前显示错误:无法将类型“..MVC.SelectList”隐式转换为System.collections.Generic.List配置视图模型在此处--pastebin.com/hAy8uEWk@AshishSrivastava,您真的应该问一个新问题(您还没有给出足够的细节),但最好的猜测是
public List LocalityList{get;set:}
需要是
public SelectList LocalityList{get;set:}