在我的MVC 3应用程序中,我将有一个包含部分视图的视图。视图本身将具有动态生成的链接的列表。链接必须导致局部视图呈现该链接项的详细信息。
我会为此使用Ajax吗?如果是这样,由于我以前从未使用过Ajax,是否有任何文档可以在MVC 3应用程序中使用它?
此外,当第一次加载视图时,将不加载局部视图,或者理想情况下将显示另一个单独的局部视图。有什么好的方法的想法吗?
感谢您的帮助。
创建动作方法,该函数返回PartialViewResult:
[HttpGet]
public ActionResult DetailedLinkInfo(int someIdentifier)
{
var detailedLinkInfo = GetFromSomewhere();
return PartialView(detailedLinkInfo );
}
然后创建一个局部视图,将其强类型化为detailedLinkInfo的类型(假设它是DynamicLink
。
@model WebApplication.Models.DynamicLink
@* bunch of HTML for the detailed info *@
然后在客户端使用jQuery。给您的所有链接一个类,这样可以更轻松地挂接事件:
$(function() {
$('a.dynamic-link').click(function() {
$.get('/SomeController/DetailedLinkInfo', someIdentifier: $(this).attr('id'), function(data) {
$('#some-div').html(data);
});
});
});
最终结果:您单击链接之一,jQuery将对您的控制器操作执行AJAX GET,然后将结果绑定到div。
我发现解决此问题的最简单方法是使用MVC 3框架随附的Ajax帮助器。 Pluralsight上用于MVC 3的Ajax视频在简要说明如何使用此功能的基础方面做得非常出色。