我正在尝试使用 Ajax 注入(inject) View ,但效果不佳。我对 Ajax 一无所知,但我正在努力学习。我在这里错过了什么,或者我这样做的方式完全错误。
foreach(ect...) {
<tr>
<td>
<a href="#" onclick="AjaxStoryClick(@item.Id)" style="color:dodgerblue; font-weight: bold">@item.Name</a>
<script type="text/javascript">
function AjaxStoryClick(storyid) {
$.ajax({
url: '@Url.Action("UserStoriesList", "Estimate")',
type: 'POST',
data: storyid,
success: function(result){
$('#stories').html(result);
}
});
}
</script>
Controller :
public ActionResult UserStoriesList(int id)
{
ActiveEpicId = id;
var userstories = userRepository.Select().Where(x => x.EpicId.Equals(id)).ToList();
return PartialView("UserStoriesList",userstories);
}
请您参考如下方法:
UserStoriesList 是 HttpPost 类型的操作方法吗?您的 Ajax 请求属于 POST 类型。因此它将仅由 HttpPost 类型的 UserStoriesList 操作方法处理。
[HttpPost]
public ActionResult UserStoriesList(int id)
{
// your code goes here
}
如果您的 ActionMethod 不是 HttpPost 类型(这意味着它是 HttpGet 类型),您可以使用 jquery get ajax 调用来获取数据
确保 ajax 调用中的参数名称与操作方法中的参数名称相同。
function AjaxStoryClick(storyid) {
$.get('@Url.Action("UserStoriesList", "Estimate")',{id : storyid},function(result){
$('#stories').html(result);
});
}
