我相信您的
AJAX
电话不完整。另外为什么是 Create
GET 方法 async
?您可以参考以下代码更改,希望能解决您的问题:
将您的
AJAX
通话更改为:
<script>
function sendObjectType(objectType) {
var param = { objectType: objectType};
$.ajax({
type: "POST",
url: '@Url.Action("Create", "Encyclopedia")',
data: { "json": JSON.stringify(param)},
dataType: "html",
success: function (partialView) {
$("#partialContainer").html(partialView);
},
error: function (error) {
console.error(error);
}
});
}
</script>
你的
Controller
方法将如下所示:
[HttpGet]
public IActionResult Create()
{
return View();
}
[HttpPost]
public IActionResult Create(string json)
{
var jsondata = JsonConvert.DeserializeObject<dynamic>(json);
string objectType = Convert.ToString(jsondata["objectType"]);
switch (objectType)
{
case "Star":
return PartialView("_CreateStarPartial");
case "Planet":
return PartialView("_CreatePlanetPartial");
case "Moon":
return PartialView("_CreateMoonPartial");
default:
return BadRequest();
}
}