2012-01-10 57 views
0

我有這個視圖。如何根據第一個下拉選定值綁定第二個下拉列表ASP.NET MVC3

@if (@Model.QuestionType == 12) 
    { 
    <div data-role="fieldcontain"> 
    @using (Ajax.BeginForm("SaveFormBuilder", "GetQuestion", new { QuestionNo = Model.QuestionNo, PreviousQuestionNo = Model.PreviousQuestion }, new AjaxOptions { }, new { id = "myform_" + @Model.QuestionNo })) 
    { 
     @Html.AntiForgeryToken() 
     <fieldset id="@(Model.QuestionNo)_fld"> 
      <div id="country" style="display: @(Model.FormBuilder.IsCountryDisplay == true ? "block" : "none")"> 
       <label class="select">@Model.FormBuilder.CountryText 
       </label> 
       <select id="countrylstdrp" name="Country" required="@(Model.FormBuilder.IsCountryRequired == true ? "true" : "false")" onchange="FillStates()"> 
        @if (Model.FormBuilder.CountryList != null) 
        { 
         <option value="-1">--Select--</option> 
         foreach (var country in Model.FormBuilder.CountryList) 
         { 
         <option value="@country.CountryId">@country.CountryName</option> 
         } 
        } 
       </select> 
      </div> 
      <div id="state" style="display: @(Model.FormBuilder.IsCountryDisplay == true ? "block" : "none")"> 
       <label class="select">@Model.FormBuilder.StateText 
       </label> 
       <select id="statelistdrp" name="State" required="@(Model.FormBuilder.IsStateRequired == true ? "true" : "false")"> 
        <option id="-1" value="select">----Select--</option> 
       </select> 
      </div> 
      <br /> 
     </fieldset> 
     <div data-role="none" style="float: right"> 
      <input type="submit" id="@(Model.QuestionNo)_chknone" data-inline="true" onclick="return SaveCheckBoxNew(this);" value="@Model.SubmitButtonText" /> 
     </div> 
    } 
</div> 
} 

加載此視圖時我將綁定所有國家的值。我的任務是現在當用戶改變國家它應該加載尊重的國家。 在我的控制器

[HttpPost] 
    public ActionResult LoadStates(int countryId) 
    { 
     List<State> lstate=ques.GettheStates(countryId); 
     return Json(lstate); 
    } 

和我的模型是 公共類國家 { 私人詮釋_stateId; private string _stateName;

public string StateName 
    { 
     get { return _stateName; } 
     set { _stateName = value; } 
    } 

    public int StateId 
    { 
     get { return _stateId; } 
     set { _stateId = value; } 
    } 
} 

並通過JQuery我打電話給這個Controller Action。

function FillStates() { 
     var countryId = $(countrylstdrp).val(); 
     $.ajax({ 
      url: 'LoadStates', 
      type: 'POST', 
      data: JSON.stringify({ countryId: countryId }), 
      dataType: 'json', 
      contentType: 'application/json', 
      success: function (data) { 
       alert('success'); 
      } 
     }); 
    } 

但它沒有調用控制器動作是什麼原因? 我怎麼能在mvc3中做到這一點。 在此先感謝。

回答

相關問題