与@Html.ActionLink
一样,在部分视图中使用 @Html.Action()
时,如何指定应点击哪个按钮/链接来加载控制器中的相应方法(比方说,abc)(比方说,xyz)??
@Html.Action("abc","xyz");
答案 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();
}