mvc ajax helper,MVC 之AjaxHelper

MVC 之AjaxHelper

2020-05-26

编程之家

https://www.jb51.cc

编程之家收集整理的这篇文章主要介绍了MVC 之AjaxHelper,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

除了传统的Ajax方法之外,MVC提供了AjaxHelper类:

Helper method

Description

Ajax.ActionLink

Creates a hyperlink to a controller action that fires an Ajax request when clicked

Ajax.RouteLink

Similar to Ajax.ActionLink,but generates a link to a particular route instead of a named controller action

Ajax.BeginForm

Creates a form element that submits its data to a particular controller action using Ajax

Ajax.BeginRouteForm

Similar to Ajax.BeginForm,but creates a form that sub- mits its data to a particular route instead of a named control- ler action

Ajax.GlobalizationScript

Creates an HTML script element that references a script that contains culture information

Ajax.JavaScriptStringEncode

Encodes a string to make sure that it can safely be used inside JavaScript

使用AjaxHelper可以很方便的实现Ajax请求,Aps.net MVC提供了jQuery和Microsoft Ajax类库两种方式来实现,使用何种方式取决于我们Web.config配置:

当设置为@H_301_88@true时,将使用jQuery方式实现请求,生成的链接如下:

a data-ajax="true"data-ajax-method="GET"data-ajax-mode="replace"data-ajax-update="#test"href="http://www.cnblogs.com/">测试

反之则使用Microsoft Ajax类库实现

href="http://www.cnblogs.com/"οnclick="Sys.Mvc.AsyncHyperlink.handleClick(this,new Sys.UI.DomEvent(event),{ insertionMode: Sys.Mvc.InsertionMode.replace,httpMethod: 'GET',updateTargetId: 'test' });"在我们创建项目时,该值默认为@H_301_88@true。这种情况下吗,我们要在页面中引入相应的js类库:

@section scripts{scripttype="text/javascript"src=" @Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")">}

下面重点了解Ajax.ActionLink()和Ajax.BeginForm()这两个Helper.

Ajax.ActionLink():

向客户端输入一个链接地址,当单击这个链接时可以异步调用Controller中的方法,Ajax.ActionLink()方法有许多重载,我们这里举例说明其中一个比较常用的重载:

public static string ActionLink(this AjaxHelper ajaxHelper,string linkText,string actionName,object routeValues,AjaxOptions ajaxOptions);

linkText:是显示在客户端的文本

actionName:是Action的名字,默认情况下我们会使用当前的Controller。

routeValues:将传入到Controller中方法的参数

ajaxOptions:配置Ajax的一些选项,看完下面的例子我们再详细讲解这个配置选项。

参数

获取或设置提交请求之前,显示在确认窗口中的消息。

获取或设置 HTTP 请求方法(“Get”或“Post”)。

获取或设置指定如何将响应插入目标 DOM 元素的模式。

获取或设置加载 Ajax 函数时要显示的 HTML 元素的id特性。

获取或设置更新页面之前,恰好调用的 JavaScript 函数的名称。

获取或设置实例化响应数据之后但更新页面之前,要调用的 JavaScript 函数。

获取或设置页面更新失败时,要调用的 JavaScript 函数。

获取或设置成功更新页面之后,要调用的 JavaScript 函数。

获取或设置要使用服务器响应来更新的 DOM 元素的 ID。

获取或设置要向其发送请求的 URL。

以之前的GuestBook为例,在列表页面(Index.cshtml),使用Ajax来显示选中行的详细信息:

Index.cshtml页面源码:

@foreach (MvcApplication5.Models.GuestbookEntry item in ViewBag.Entries)

{tr>

td>@Html.DisplayFor(modelItem => item.Name)>@Html.DisplayFor(modelItem => item.Message)>@Html.DisplayFor(modelItem => item.DateAdded)>@Html.ActionLink("Edit","Edit",new { id=item.Id }) |

@Html.ActionLink("Details","Details",new { id=item.Id }) |

@Html.ActionLink("Delete","Delete",new { id=item.Id }) |

@Ajax.ActionLink("AjaxContentController","getEntry",new { id = item.Id },new AjaxOptions { HttpMethod = "Post",UpdateTargetId = "detailsID",InsertionMode = InsertionMode.Replace })

@Ajax.ActionLink("AjaxJsonController","JsonDetails",InsertionMode = InsertionMode.Replace,OnSuccess = "Show" })

@Ajax.ActionLink("AjaxPartialView",new AjaxOptions { HttpMethod = "Get",UpdateTargetId = "detailsID" })>

>}table>

divid="detailsID"div>

我们将使用ActionLink分别异步请求ContentController,Json格式的Controller和PartialView格式的Controller来显示详细信息:

1:Ajax异步请求ContentController

ContentController直接以字符串形式返回实例的内容,在Index.cshtml中使用ActionLink,如下:

@Ajax.ActionLink("AjaxContentController",InsertionMode = InsertionMode.Replace })

相应的Controller:

public string getEntry(int id = 0) {

GuestbookEntry entry= _db.Entries.First(c => c.Id ==id);returnentry.Details;

}

结果:返回的内容直接更新到ID属性为@H_301_88@detailsID的DIV中:

2: 使用Json格式返回

在Index.cshtml中使用ActionLink,如下:

@Ajax.ActionLink("AjaxJsonController",OnSuccess = "Show" })

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值