我一直在构建这个纸牌游戏作为一个网络应用程序使用.NET核心的Gui。当用户单击表示扑克牌的空白矩形时,我希望生成一个带有随机值(名称、值和套装)的卡片对象,并将用户返回到视图中,并在空白卡片上显示这些值。
目前,我的视图中有一个链接,它在点击时调用函数生成随机卡片。但是现在,链接将用户重定向到一个错误页面,并使用文本“找不到这个本地主页”。我只是想知道这是为什么?
链接在这里:
<a asp-controller="CardController" asp-action="PlayTurn" class="card">这是应该生成随机卡的控制器操作:
public IActionResult Create()
{
return View();
}
public static string GetShortName(string name)
{
string result = name.Substring(0, 1);
return result;
}
public static Card CreateCard()
{
Card[] card1 = new Card[11];
Random rnd1 = new Random();
Array suitvalues = Enum.GetValues(typeof(Suit)); // generates a random suit
Suit randomSuit = (Suit)suitvalues.GetValue(rnd1.Next(suitvalues.Length));
var i = rnd1.Next(card1.Length);
var card = new Card()
{
Suit = randomSuit,
Value = i,
DisplayName = GetShortName(randomSuit.ToString())
};
return card;
}
public IActionResult PlayTurn()
{
var card = CreateCard(); // creates a random card
TempData["CardName"] = card.DisplayName;
TempData["CardValue"] = card.Value;
TempData["CardSuit"] = card.Suit.ToString();
return Redirect("Card/Create");
}这是视图的完整代码:
@model SnapCardGame.Models.Card
@using Microsoft.AspNetCore.Http
<div class="text-center">
<h1 class="display-4">Welcome to the Card Page!</h1>
@if (TempData.Peek("CardName") != null)
{
<a asp-controller="CardController" asp-action="PlayTurn" class="card">
<ul>
<li>
@TempData.Peek("CardName")
</li>
<li>@TempData.Peek("CardValue")</li>
<li>@TempData.Peek("CardSuit")</li>
</ul>
</a>
}
else
{
<a asp-controller="Game" asp-action="PlayTurn" class="card">
</a>
}
<a asp-controller="Game" asp-action="PlayTurn" class="card">
</a>
</div>我想通过Temp数据将随机生成的值传递给视图。不过,目前我只得到了生成的页面:

如果有人有任何建议,请随时通知我?
谢谢,
罗伯特·杨
伦敦,英国
发布于 2022-10-07 01:22:06
将链接更改为:
<a asp-controller="Card" asp-action="PlayTurn" class="card">相应的控制器名称应该是Card,而不是CardController。
https://stackoverflow.com/questions/73976913
复制相似问题