Asp.net mvc 使用传递的参数从另一个控制器执行Html.RenderAction

Asp.net mvc 使用传递的参数从另一个控制器执行Html.RenderAction,asp.net-mvc,renderaction,Asp.net Mvc,Renderaction,我有两种型号:玩家和玩家成就 public class Player { [Required] public String clubName { get; set; } [Required] public String id { get; set; } [Required] public int number { get; set; } [Required] public String name { get; set; }

我有两种型号:玩家玩家成就

 public class Player
 {
    [Required]
    public String clubName { get; set; }
    [Required]
    public String id { get; set; }
    [Required]
    public int number { get; set; }
    [Required]
    public String name { get; set; }
    [Required]
    public String position { get; set; }
    [Required]
    public DateTime dateOfBirth { get; set; }
    [Required]
    public string placeOfBirth { get; set; }
    //TODO: Remember to change variable name
    [Required]
    public double weight { get; set; }
    [Required]
    public double height { get; set; }
    [Required]
    public String description { get; set; }
    [Required]
    public String imageLink { get; set; }
    [Required]
    public Boolean status { get; set; }
}

public class PlayerAchievement
{
    [Key]        
    public String playerID { get; set; }               
    [Required]
    public String achievementName { get; set; }
    [Required]
    public int number { get; set; }
}
播放器具有显示播放器详细信息的详细信息视图。我想在那里渲染ShowPlayerAchieve视图。但是,ShowPlayerAchieve操作在PlayerAchieve控制器中

public ActionResult ShowAchievementsList(String playerID)
{
   return View(_repository.GetPlayerAchievementsByPlayerID(playerID));
}
如上所述,该方法需要播放器的playerID,因此我尝试了@Html.RenderAction播放器的Details.cshtml的代码,以查看它是否有效,但没有

@Html.RenderAction("ShowAchievementsList", "PlayerAchievement", new { playerID = Model.id })
总而言之,我如何使用玩家的playerID参数从playerAchieve控制器调用ShowAchieventList操作? 更新 此代码不显示错误 @Action(“ShowAchievementsList”,“playerAchievent”,new{playerID=Model.id})

但我在PlayerAchievementRepository类的构造函数中得到了一个NullRefferenceException

公共类PlayerAchieventRepository:IPlayerChieventRepository {

公开列出所有玩家的成就;
私有XDocument PlayerAceiveData;
public PlayerAchievementRepository()
{
AllPlayerAchievents=新列表();
playerAchievementData=XDocument.Load(HttpContext.Current.Server.MapPath(“~/App\u Data/player\u management.xml”);
//错误显示在这里
var playerAchievents=来自playerAchievementData.substands中的playerAchievent(“玩家成就”)
选择新的PlayerAchievent((int)PlayerAchievent.Element(“数字”)、PlayerAchievent.Element(“playerID”).值,
playerAchievents.Element(“achievementName”).Value);AllPlayerAchievents.AddRange(playerAchievents.ToList());
//其他逻辑代码。。。
}
在player_management.xml中

<player_achievement>
        <number>3</number>
        <playerId>01</playerId>
        <achievementName>European Cup</achievementName>
</player_achievement>

3.
01
欧洲杯

尝试以下两种语法之一:

 @{Html.RenderAction("ShowAchievementsList", "PlayerAchievement", new { playerID = Model.id });}

试试下面的方法

@{
@Html.RenderAction("ShowAchievementsList", "PlayerAchievement", new { playerID = Model.id })
}
 @Html.Action("ShowAchievementsList", "PlayerAchievement", new { playerID = Model.id });
@{
@Html.RenderAction("ShowAchievementsList", "PlayerAchievement", new { playerID = Model.id })
}