如何解决根据对另一个保管箱的选择,将保管箱作为局部视图返回
控制器代码:
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();
}
[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");
}
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>
我尝试了许多不同的迭代,通常会抛出一个错误,提示未找到Root元素,该迭代实际上会激活控制器代码,但不会返回“成功”或“错误” ajax脚本中的代码。没事。
我非常感谢您的帮助。
解决方法
您正在从string s = "More++";
if(s.find("++")<s.length()){ //to find ++
//found
} else {
//not found
}
操作返回IActionResult
类型的对象。但是在用户界面中,您尝试读取CreatePopulateSCat(string CatID)
。 result.success
没有IActionResult
属性。因此您的js仍然无法正常工作。
如果您尝试使用JSON对象,那么为什么不从控制器返回JSON对象呢?呈现的视图html可以是json的属性。
success
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。