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 })
}