Skip to main content
 首页 » 编程设计

c#之在 MVC 中使用 Ajax

2024年02月23日34三少

我正在尝试使用 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); 
  }); 
}