【发布时间】:2021-01-29 19:27:20
【问题描述】:
控制器代码:
public async Task<IActionResult> Create()
{
ViewBag.Cat_ID = new SelectList(_context.Category, "Cat_ID", "Cat_Name");
var specialists = await userManager.GetUsersInRoleAsync("Specialist");
ViewBag.Specialist_ID = new SelectList(specialists, "Id", "UserName");
return Request.IsAjaxRequest() ? (IActionResult)PartialView() : View();
}
Dropbox 控制器代码:
[HttpGet]
public IActionResult CreatePopulateSCat(string CatID)
{
List<SubCategory> AllSubCategories = _context.SubCategory.ToList();
List<SubCategory> SelectedSubCategories = AllSubCategories.FindAll(a => a.SCat_Cat.Contains(CatID));
ViewBag.SCat_ID = new SelectList(SelectedSubCategories, "SCat_ID", "SCat_Name");
return Request.IsAjaxRequest() ? (IActionResult)PartialView("CreatePopulateSCat") : View("Create");
}
创建.cshtml:
<select id="SCat_Cat" name="SCat_Cat" asp-for="Cat_Id" asp-items="(SelectList)ViewBag.Cat_ID" class="form-control" onchange="funct()">
<option value="0">Pasirinkite kategoriją</option>
</select>
@Html.Partial("CreatePopulateSCat", Model)
ajax 代码:
<script type="text/javascript">
function funct() {
var catvalue = document.getElementById("SCat_Cat").value;
var url = "CreatePopulateSCat"
alert(catvalue);
$.ajax(
{
type: "GET",
url: url,
data: { CatID: catvalue },
success: function (result) {
if (result.success) {
alert("Good");
document.getElementById("SCat_SCat").innerHTML = result;
}
},
error: function (req, status, error) {
alert(error);
}
});
return false;
}
</script>
我已经尝试了很多不同的迭代,通常我被抛出一个错误,说找不到根元素,这个迭代实际上激活了控制器代码,但它没有返回“成功”或“错误” ajax 脚本中的代码。什么都没有发生。
非常感谢您的帮助。
【问题讨论】:
-
alert("Good");或alert(error);执行这些 js 中的任何一个? -
是的,它们是 Js 执行的。
-
然后你从控制器获取数据。如果你在成功消息中写
console.log(result),你会看到什么? -
哦,对不起,我误读了这个问题,不,他们不执行。对不起。
标签: .net ajax asp.net-mvc asp.net-core model-view-controller