我正在尝试在ASP .NET网页中制作简单的规则页面(使用C#,它显示所有规则(字符串列表),然后让您添加,然后立即将它们添加到已打印的规则中。(仅出于教育目的) ) 我知道我应该使用POST-> REDIRECT-> GET模式并在会话数据中存储字符串列表,尽管我可以准确地获取这些数据-我尝试的任何操作都以错误结尾,例如:代码错误CS1002: ;预期在第40行(这很奇怪,因为我也检查了该行以及其他代码,而且我没有发现任何遗漏的分号...我认为这可能是由于某些代码工作与预期不同引起的)... / p>
这是我尝试过的代码的一个版本:
@{
Layout = null;
var rules = new List<string>();
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
</head>
<body>
<form action="~/Rules.cshtml" method="Post">
<p>
<label for="name">New rule</label><br>
<input type="text" name="rule">
<p><input type="submit" value="Add"></p>
</p>
</form>
@{
if (Session["rules"] == null)
{
Session["rules"] = rules;
}
if (IsPost)
{
rules = new List<string>();
foreach (var i in (List<string>)System.Web.HttpContext.Current.Request.Session["rules"])
{
rules.Add(i);
}
rules.Add(Request.Form["rule"]);
List<string>System.Web.HttpContext.Current.Request.Session["rules"] = rules;
}
}
}
<ul>
@{ foreach (var x in Request.Session["rules"])
{
<li>@x</li>
}
}
</ul>
</body>
</html>
Rules.cshtml显然是带有此代码的文件。 (我知道,每次重新创建整个列表都不是最佳的解决方案,但是我没有找到任何不同的方法...如果您有解决方案,我欢迎您提出建议)