Skip to main content
 首页 » 编程设计

c#之Ajax.Actionlink 转发到 Get 方法,同时将 httpmethod 设置为发布

2024年02月13日35kenshinobiy

Controller 的get和post方法

 [HttpGet] 
    public ActionResult Index() 
    { 
 
        SoSession.Authenticate("pierre", "pierre"); 
        return View(); 
    } 
 
    [HttpPost] 
    public ActionResult Index(CompanySearch model) 
    { 
 
        return RedirectToAction("Companies",new{searchString=model.SearchString}); 
 
    } 

在 View 中

@using (Html.BeginForm("Index", "Company")) 
{ 
    <div class="input-block-level"> 
         @Html.TextBoxFor(m => m.SearchString) 
         @Ajax.ActionLink( 
             "Submit", 
             "Index",  
             new{},  
             new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "partialDiv" })  
    </div> 
 
 
} 
 
<div id="partialDiv"></div> 

问题 每当用户单击提交链接时,我都会被转发到获取方法而不是发布方法。我如何将调用转发到我的 Controller 的 post 方法?

请您参考如下方法:

确保您已将朴素的 ajax 库文件(及其依赖项 (jQuery))正确加载到您的 View 中。如果您没有将此文件加载到您的页面,单击由 Ajax.ActionLink 辅助方法生成的链接将执行 GET 请求,而不是异步 POST 你所期待的。

<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>