Я новичок в ASP.net и Razor Pages.В приведенных ниже кодах я пытаюсь заполнить раскрывающийся список Район значениями, основанными на раскрывающемся списке Штат.Вот что у меня получилось:
Просмотр:
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script language="javascirpt" type="text/javascript">
function GetDist(_stateId) {
var procemessage = "<option value='0'> Please wait...</option>";
$("#select-state").html(procemessage).show();
var url = "/Info/GetDistById/";
$.ajax({
url: url,
data: { stateid: _stateId },
cache: false,
type: "POST",
success: function (data) {
var markup = "<option value='0'>Quận/Huyện</option>";
for (var x = 0; x < data.length; x++) {
markup += "<option value=" + data[x].Value + ">" + data[x].Text + "</option>";
}
$("#select-state").html(markup).show();
},
error: function (reponse) {
alert("error : " + reponse);
}
});
}
</script>
<div class="col-md-offset-0 col-md-2">
<select class="form-control" id="select-state" onchange = "javascript:GetDist(this.value);">
@foreach (var state in Model.tbState)
{
<option value=@state.StateId>@state.Statename</option>
}
</select>
</div>
<div class="col-md-1 ">Quận/Huyện: </div>
<div class="col-md-offset-0 col-md-2">
<select class="form-control" id="select-dist">
@foreach (var dist in Model.tbDistrict)
{
<option value=@dist.DistrictId>@dist.Districtname</option>
}
</select>
</div>
В моем файле cshtml.cs у меня есть этот код.Я использовал System.Web.Helpers
в начале кода:
public IActionResult GetDistById(int stateid)
{
List<TbDistrict> list = new List<TbDistrict>();
foreach (var q in tbDistrict)
{
if (q.StateId == stateid)
list.Add(q);
}
SelectList selectlist = new SelectList(list, "", "", 0);
JsonResult result = Json(selectlist);
return result;
}
Я обнаружил, что метод Json () работает только с классом Controller
в MVC, а не с классом Razor PageModel
,поэтому выдает ошибку CS0103 «Имя« Json »не существует в текущем контексте».Есть ли способ заставить его работать?