2012-01-10 18 views
0

私はこのビューを持っています。このビューをロード中に最初のドロップダウン選択値に基づいて2番目のドロップダウンをバインドする方法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); 
    } 

でと私のモデルは パブリッククラス州立 { プライベートint型_stateIdです。 プライベート文字列_stateName;

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

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

と私はこのコントローラアクションを呼び出しています。

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でこれを行うことができます。 ありがとうございます。

答えて

関連する問題