ASP.Net MVC AJax辅助方法

Ajax的ActionLink方法

在Razor视图中,Ajax辅助方法可以通过Ajax属性访问,例如ActionLink方法可以创建一个具有异步行为的锚标签。 假如为Music Store创建一个“Daily Deal”链接,这个锚标签点击之后是在当页显示折扣专辑的详细信息,而不是 在一个新的页面显示。

那么我们可以这样写:

1
2
3
4
5
6
7
8
9
<div id="dailydeal>
	@Ajax.ActionLink("点击这里获得折扣信息",
					"Daily Deal",
					new AjaxOptions{
						UpdateTargetId="dailydeal",
						InsertionMode=InsertionMode.Replace,
						HttpMethod="GET"
						})
</div>

第一个参数指定了链接文本,第二个参数指定了要异步调用的方法名称,第三个参数指定了发送请求和处理服务器 返回结果的方式。在这个示例当中,AjaxOption参数的选项指定了要使用来自服务器的响应元素替换id值为“dailydeal” 元素,为了得到服务器的响应,需要在控制器HomeController添加一个DailyDeal操作。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
public ActionResult DailyDeal()
{
	var albums = GetDailyDeal();
	return PartialView("_DailyDeal",albums);
}

private Album GetDailyDeal()
{
	return storeDB.Albums
		.OrderBy(a => a.Price)
		.First();
}

Ajax操作链接的目标操作的返回值是纯文本或者HTML,在这个示例当中将会通过渲染一个部分视图来返回HTML。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<p>
	<img alt = "@Model.Title" src = @Model.AlbumArtUrl"/>
</p>

<div id = "album-detalils">
	<p>
		<em>Artist:</em>
		@String.Format("{0:F},Model.Price")
	</p>
	<p class="button>
		@Html.ActionLink("Add to cart","AddToCart",
		"ShoppingCart",new {id = Model.AlbumId},"")
	</p>
</div>
Built with Hugo
主题 StackJimmy 设计