GVKun编程网logo

Ajax.ActionLink与Html.ActionLink Jquery.Ajax调用(ajax调用action方法)

5

想了解Ajax.ActionLink与Html.ActionLinkJquery.Ajax调用的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于ajax调用action方法的相关问题,此外,我

想了解Ajax.ActionLink与Html.ActionLink Jquery.Ajax调用的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于ajax调用action方法的相关问题,此外,我们还将为您介绍关于.net – 动态Ajax ActionLink RouteValues、@Ajax.ActionLink跳转页面的问题解决方案 MVC Ajax不支持问题、Ajax.ActionLink POST在ASP.NET MVC 5中不起作用、Ajax.ActionLink 用法的新知识。

本文目录一览:

Ajax.ActionLink与Html.ActionLink Jquery.Ajax调用(ajax调用action方法)

我可以通过Ajax.ActionLink(“获取客户”,“GetCustomers”,“客户”)调用asp.net mvc控制器;

我可以使用Html.ActionLink和jquery ajax调用来做同样的事情.

区别在哪里?

Where is the difference?

在您必须编写的代码量(使用Ajax.ActionLink的代码较少)和您需要的控制级别(更多使用Html.ActionLink和jquery ajax调用).

所以它的代码量与所需的控制和功能水平相关=>由你来决定你需要哪一个.

两种方法都很好. Ajax.ActionLink使用jquery.unobtrisuve-ajax脚本来AJzz化幕后的锚点.

我个人总是使用Html.ActionLink jQuery.

.net – 动态Ajax ActionLink RouteValues

我有一个ActionLink链接

@Ajax.ActionLink("Delete it!","Delete",new {id = getTheID},new AjaxOptions { Confirm = "Really?",HttpMethod = "Delete",UpdateTargetId = "ddlRoles" })

我想在点击时插入路线值“id”.
我想要读取的值是一个下拉列表,所以我在javascript中有这样的东西来获取值:

$('#ddlRoles :selected').val()

我已经读过这篇文章了
set ActionLink routeValues dynamically
但是我不确定语法应该是什么样子,有人可以帮助我吗?

问候

解决方法

使用ajax选项的OnBegin重载.传入的参数之一是请求对象.

您可以从该下拉列表中提取值并修改Url.

function onBegin(xhr,request)
{
     request.url = "@Url.Action("SomeAction","SomeController")/" + $("ddl").val();
}

HTH

@Ajax.ActionLink跳转页面的问题解决方案 MVC Ajax不支持问题

@Ajax.ActionLink跳转页面的问题解决方案 MVC Ajax不支持问题

【JavaScriptResult】在客户端执行服务器返回的JavaScript代码
当一个内置的Ajax辅助方法请求一个操作方法,该方法会返回一个在客户端执行立即的脚本。

public ActionResult DoSomething()
{
     string s = "$(''#some-div'').html(''Updated'')";
     return JavaScript(s);
}

 

@Ajax.ActionLink("单击", "DoSomething", new AjaxOptions());
<div id="some-div"></div>

 

使用JavaScript的视图页面需要引用以下js,请使用NuGet安装:

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

貌似使用Ajax.ActionLink跳转了页面,而不是刷新当前视图。最后通过分析发现视图代码、脚本引用均未出现问题。而是web.config中缺少以下配置:
在appSettings节点下需要启用对JavaScript的支持,否则也是无法使用@Ajax.ActionLink的。

<appSettings>
<!--<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />-->
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>

 

Ajax.ActionLink POST在ASP.NET MVC 5中不起作用

情况的快速摘要:

在我的视图中,我有这片Razor代码:

@{
ViewBag.Title = "Index";

AjaxOptions options = new AjaxOptions();
options.HttpMethod = "POST";
}

...

@Ajax.ActionLink("Linkname","CreateChallenge",new { challengedId = Model.UserId },options);

比我的控制器:

[Authorize]
[HttpPost]
    public string CreateChallenge(string challengedId)
    {
        ChallengeRepository.CreateChallenge(challengedId);
        return "Sendend!";
    }

单击链接时出现“未找到资源”错误,但是当我删除[HttpPost]属性时,一切正常.但我想要一个POST方法.我环顾四周,发现了一些类似的问题,但没有一个解决方案适合我.

解决方法

UPDATE
说得太快,记得你需要jQuery.Ajax.Unobtrusive http://www.nuget.org/packages/jQuery.Ajax.Unobtrusive/包

如果你安装它并在你的视图中引用它应该工作,它是我的OOTB测试:)

我自己做了一个快速测试,似乎你无法使用Ajax.ActionLink发出POST请求,即使你在AjaxOptions中设置POST也会执行GET.如果您使用fiddlr来监控流量,则可以看到此信息.

您还可以使用Chrome的Postman扩展程序对其进行测试,您会看到操作方法实际上与POST时的行为方式相同.但是你得到404因为它实际上是一个GET

如果是我,我会用jQuery来做这个帖子.你可以在这里看到更多http://api.jquery.com/jquery.ajax/

Ajax.ActionLink 用法

Ajax 属性的ActionLink方法可以创建一个具有异步行为的锚标签。 ActionLink方法的第一个参数指定了链接文本,第二个参数是要异步调用的操作的名称。类似于同名的HTML辅助方法,AJAX辅助方法ActionLink也提供了各种重载版本,用来传递控制器名称、路由值和HTML特性。 如下使用: 1、 @Ajax.ActionLink("首页","Index","Home",new AjaxOptions() { UpdateTargetId = "body_content",HttpMethod = "Post",InsertionMode = InsertionMode.Replace })首先Ajax描述我们使用,UpdateTargetId为更新我们的展示层的内容,HttpMethod不必说大家都知道。我们简单介绍一下InsertionMode,微软提供的描述为枚举AJAX脚本插入模式,我们发现InsertionMode枚举中有三个(InsertAfter、InsertBefore、Replace)不难理解,InsertAfter为插入之前,InsertBefore插入之后,Replace为替换内容,那么我们可以分析出,上面方法是异步的刷新了body_content层的内容。那么显然我们根据这些内容可以分析出部分他的应用场景。数据表的更新以及其他内容的更新,追加通过此处处理更加方便,我们在看AjaxActionLink还有什么用法。 2、Confirm我们看到这个属性,获取或设置在请求之前显示在确认窗口中的消息,不难理解我们可以通过这个内容来实现我们alert的消息提示功能。(是不是有种要摆脱javascript的感觉呢?其实机制仍然是javascript) 3、OnComplete、OnSuccess、OnFailure、OnBegin我们发现还包括这些内容, 第一眼看到就是一个时间方法。然而在Ajax.ActionLink中。也是对我们处理的方法返回的相应的结果内容。 我们通过前台Javascript来实现处理完成,处理成功,处理失败等信息多对应的业务内容。 处理如下 @Ajax.ActionLink("首页",OnSuccess="Show()",OnFailure="Failure()"}) <script> function Show(){ ///想处理什么自己描述吧 } function Failure(){ ///想处理什么自己描述吧 } </script> 4、Url:获取或设置已呈现的页的URL 所有方法如下 Confirm 获取或设置提交恳求之前,显示在确认窗口中的消息。 HttpMethod 获取或设置 HTTP 恳求办法(“Get”或“Post”)。 InsertionMode 获取或设置指定如何将响应插入目标 DOM 元素的模式。 LoadingElementId 获取或设置加载 Ajax 函数时要显示的 HTML 元素的 id 特点。 OnBegin 获取或设置更新页面之前,正好调用的 JavaScript 函数的名称。 OnComplete 获取或设置实例化响应数据之后但更新页面之前,要调用的 JavaScript 函数。 OnFailure 获取或设置页面更新失败时,要调用的 JavaScript 函数。 OnSuccess 获取或设置成功更新页面之后,要调用的 JavaScript 函数。 UpdateTargetId 获取或设置要应用办事器响应来更新的 DOM 元素的 ID。 Url 获取或设置要向其发送恳求的 URL。

关于Ajax.ActionLink与Html.ActionLink Jquery.Ajax调用ajax调用action方法的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于.net – 动态Ajax ActionLink RouteValues、@Ajax.ActionLink跳转页面的问题解决方案 MVC Ajax不支持问题、Ajax.ActionLink POST在ASP.NET MVC 5中不起作用、Ajax.ActionLink 用法的相关知识,请在本站寻找。

本文标签: