关于如何在使用@ Html.Action帮助器时指定链接/按钮的困惑

时间:2016-07-14 11:29:04

标签: asp.net-mvc-4

@Html.ActionLink一样,在部分视图中使用 @Html.Action() 时,如何指定应点击哪个按钮/链接来加载控制器中的相应方法(比方说,abc)(比方说,xyz)??

@Html.Action("abc","xyz");         

1 个答案:

答案 0 :(得分:1)

Html.Action方法调用action方法,其结果(生成的html标记)将返回到包含Html.Action调用的视图。当剃刀执行您的主视图时会发生这种情况。你无法将它与一个链接相关联,点击它将加载Html.Action响应。

但是,您可以在客户端使用jQuery和ajax来实现您所追求的这种行为。你应该做的是,听取链接的click事件,对你的动作方法进行ajax调用,当你得到动作方法的响应时,根据需要将它注入dom。

因此,在主视图中,包含一个链接和一个容器div,我们将在其中显示action方法的结果。

@Html.ActionLink("Load","Details","Customer",null,new{id="myLink"})
<div id="details"></div>

现在javascript处理click事件并进行ajax调用。您可以使用jQuery load()方法。

$(function(){

   $("#myLink").click(function(e){
     e.preventDefault();
     $("#details").load($(this).attr("href"));  
   });

});

假设您的Details中有一个名为CustomerController的操作方法,该方法会返回部分视图结果。

public ActionResult Details()
{
  // to do  : Return something as needed.
  // Ex : return PartialView();
}