У меня есть это представление.
@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);
}
и моя модель
государственный класс государства
{
private int _stateId;
приватная строка _stateName;
public string StateName
{
get { return _stateName; }
set { _stateName = value; }
}
public int StateId
{
get { return _stateId; }
set { _stateId = value; }
}
}
и через JQuery я вызываю это действие контроллера.
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.
Заранее спасибо.